编写高效 SQL 查询的 12 个技巧

原文:https://www . geesforgeks . org/12-tips-to-write-efficient-SQL-query/

我们都知道数据库在任何应用程序中的重要性。这是根据需求存储和检索用户信息的地方。SQL 是最流行的查询语言,它允许您存储和检索数据库中的数据并执行操作。在选择数据库和为特定任务/操作编写查询时,数据库的性能非常重要。

12-Tips-to-Write-Efficient-SQL-Queries

在开发中,编写查询不仅仅是重要的。编写高效的 SQL 查询也很重要。高效的查询会产生更快的结果。当 SQL 查询得到优化时,应用程序更快的性能可以节省大量时间。这对数据库管理员和 SQL 开发人员来说都变得很方便。您应该有一个快速的 SQL 服务器来实现快速、高效和可信的数据库查询。

在这个博客中,我们将讨论一些规则,这些规则将帮助您使您的 SQL 更快、更高效。

1。创建小批量数据进行删除和更新

不要批量删除和更新数据,而是创建小批量的数据。如果有回滚,您将避免丢失或杀死您的数据。它还增强了并发性,因为除了您正在删除或更新的部分之外,您的数据继续进行其他工作。

2。用案例代替更新

与 CASE 语句相比,在编写 SQL 查询时,UPDATE 语句向表中写入的时间更长,因为它会记录日志。内联 CASE 语句在将数据写到表上之前会选择首选项,这最终会提高速度。

3。使用临时表

临时表用于许多情况,例如将一个小表连接到一个大表。您可以通过从大型表中提取数据,然后将其传输到临时表中,然后与临时表连接来提高数据性能。这降低了处理所需的功率。

4。避免使用其他开发人员的代码

当您使用其他人的代码时,很有可能会获取比您需要的更多的数据。减少这些数据对你来说可能很难,但是如果你按照你的需要来修剪这些代码,你最终不会得到巨大的数据集群。

5。避免负面搜索

负面搜索会大大降低数据库性能。为了避免这种情况,您可以用更好的索引重写查询,尤其是在处理大量数据时。

6。使用 TT2T4 列数

编写 select 语句时,请确保根据所需的行数写入正确的列数。这将使您的查询更快,并加快您的进程。

7。不需要计算表格中的所有内容

要检查某些数据的存在,您需要执行一个操作。人们经常这样尝试:

SET @CT = (SELECT COUNT (*) FROM dbo.T1);If @CT > 0BEGIN <Do something>END

写上面的语句是不必要的,只是浪费了很多时间。你可以写下面的语句来代替上面的语句…

If EXISTS (SELECT 1 FROM dbo.T1)BEGIN<Do something>END

从上面的方法,你可以避免计算表上的每一项。当您使用 EXIST 时,SQL 服务器会识别它并给出更快的结果。

8。避免使用全球唯一标识符

对于表数据的排序,尽可能避免使用 GUIDs。GUID 可以很容易地快速打破你的桌子。您可以使用 IDENTITY 或 DATE 进行只需几分钟的戏剧性中断。

9。避免使用触发器

在 SQL 查询中使用触发器并不重要。无论您计划如何处理您的数据,都要经历与前面操作相同的事务。使用触发器会导致锁定许多表,直到触发器完成周期。您可以将数据分成几个事务来锁定某些资源。这将有助于您加快交易速度。

10。避免使用 ORM

使用 ORM(对象关系映射器)将会给你技术世界中最糟糕的代码。你会在日常接触中遇到糟糕的表现。如果您无法完全避免它们,那么通过编写完全属于您自己的存储过程来最小化它们,并让 ORM 使用您的存储过程而不是它创建的存储过程。

11 时。避免使用不同的关键词

您应该始终尽量避免使用 DISTINCT 关键字。使用此关键字需要额外的操作。这将降低所有查询的速度,并且几乎不可能得到您需要的东西。

12 时。使用更少的光标

游标会产生许多问题,尤其是在速度方面。此外,它们也是堵塞的原因。一个操作可以阻止其他操作。这可能会影响您的系统并发性,减慢一切。

结论

我们主要讨论了编写高效 SQL 查询的十二个技巧。这里不做限制。您可以使用存储过程来提高效率。此外,您可以将大交易和小交易分开。使用系统表计算行数,并减少嵌套视图以减少滞后。这些技巧对于提高 SQL 服务器的性能非常有帮助。

随着您在编写更多数据库查询方面的进步,您将了解如何更好地优化事物或查询。查看其他开发人员的代码也有助于编写高效的查询。希望这些提示对编写更好的 SQL 查询有所帮助。