Sql server 如何调整查询
我有一个正在缓慢运行的查询。我通常知道如何提高性能,限制连接,并尝试使用过程而不是直接查询。由于业务规则,我无法使用procs。我已经尽我所能减少了连接的数量Sql server 如何调整查询,sql-server,sql-tuning,Sql Server,Sql Tuning,我有一个正在缓慢运行的查询。我通常知道如何提高性能,限制连接,并尝试使用过程而不是直接查询。由于业务规则,我无法使用procs。我已经尽我所能减少了连接的数量 查询优化的下一步是什么?添加索引可能是提高查询性能的首要方法,但您没有提到这一点 您是否查看了执行计划,以了解是否可以通过附加索引来改善这一点 此外,您应该确保您的查询是以这样的方式编写的,以便它们能够有效地使用任何存在的索引(例如,避免不可搜索的构造,避免*)添加索引可能是您可以做的提高查询性能的第一件事,您没有提到 您是否查看了执行计
查询优化的下一步是什么?添加索引可能是提高查询性能的首要方法,但您没有提到这一点 您是否查看了执行计划,以了解是否可以通过附加索引来改善这一点
此外,您应该确保您的查询是以这样的方式编写的,以便它们能够有效地使用任何存在的索引(例如,避免不可搜索的构造,避免
*
)添加索引可能是您可以做的提高查询性能的第一件事,您没有提到
您是否查看了执行计划,以了解是否可以通过附加索引来改善这一点
此外,您应该确保您的查询是以这样的方式编写的,以便它们可以有效地使用任何存在的索引(例如,避免非可搜索的构造,避免
*
)最简单的方法是转到management studio运行以下命令:
SET SHOWPLAN_ALL ON
然后运行实际的查询
您将无法获得常规查询结果集。它将在一个结果集中为您提供执行计划(一个非常详细的SQL Server执行查询的操作列表)。查看输出并尝试了解其含义。我通常寻找“扫描”,这是一个缓慢的部分,我尝试重写它,以便它使用索引。最简单的方法是转到management studio运行以下命令:
SET SHOWPLAN_ALL ON
然后运行实际的查询
您将无法获得常规查询结果集。它将在一个结果集中为您提供执行计划(一个非常详细的SQL Server执行查询的操作列表)。查看输出并尝试了解其含义。我通常寻找“扫描”,这是一个缓慢的部分,我尝试重写它,使其使用索引。还避免逐行处理,这意味着尽可能摆脱相关子查询和游标。此外,许多人忘记在系统中的FKs上放置索引,PKs会自动索引,FK不是。也要避免逐行处理,这意味着尽可能摆脱相关的子查询和游标。此外,许多人忘记在系统中为FK添加索引,PK是自动索引的,FK不是。查询优化是一个非常大的领域,从您所写的内容无法判断您在这方面有多熟练。如果您提供一个示例查询并详细告诉我们您尝试了什么,那会更好。我甚至不知道你是否考虑过索引,或者你是否已经用所有合理的索引衡量了性能,但仍然感到困惑。如果返回的数据不同,那么切断连接不是一个好主意。这通常不是一种性能优化的好方法,因为您通常会丢失信息。查询优化是一个非常大的领域,从您所写的内容无法判断您在这方面的熟练程度。如果您提供一个示例查询并详细告诉我们您尝试了什么,那会更好。我甚至不知道你是否考虑过索引,或者你是否已经用所有合理的索引衡量了性能,但仍然感到困惑。如果返回的数据不同,那么切断连接不是一个好主意。这通常不是调整性能的好方法,因为您通常会丢失信息。