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

📅  最后修改于: 2021-10-21 05:32:56             🧑  作者: Mango

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

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

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

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

1. 为删除和更新创建小批量数据

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

2. 使用 CASE 而不是 UPDATE

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

3. 使用临时表

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

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

当您使用其他人的代码时,很可能会提取出比您需要的更多的数据。减少这些数据对您来说可能很难,但如果您根据需要修剪此代码,您最终不会得到庞大的数据集群。

5. 避免否定搜索

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

6. 使用准确的列数

在编写 select 语句时,请确保根据需要针对尽可能多的行编写正确数量的列。这将使您的查询更快,并且您将加快您的流程。

7.无需计算表中的所有内容

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

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

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

If EXISTS (SELECT 1 FROM dbo.T1)BEGINEND

通过上述方法,您可以避免计算桌子上的每个项目。当您使用 EXIST 时,SQL 服务器会识别它并提供更快的结果。

8. 避免使用全局唯一标识符

要对表数据进行排序,请尽可能避免使用 GUID。 GUID 可以轻松快速地从您的桌面上消失。您可以使用 IDENTITY 或 DATE 进行仅需几分钟的戏剧性中断。

9. 避免使用触发器

在 SQL 查询中使用触发器并不重要。无论您打算对数据做什么,都要像以前的操作一样执行相同的事务。使用触发器会导致锁定许多表,直到触发器完成循环。您可以将数据拆分为多个事务以锁定某些资源。这将帮助您更快地进行交易。

10. 避免使用 ORM

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

11. 避免使用不同的关键字

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

12. 使用更少的光标

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

结论

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

随着您编写更多数据库查询的进展,您将了解如何优化事物或查询。查看其他开发人员的代码也有助于编写高效的查询。希望所有这些技巧都有助于编写更好的 SQL 查询。