SQL Server查询调优全解析
1. 查询调优基础
在SQL Server中,基于相同模板的查询,即使输入值不同,也会有相同的查询哈希值。通过对 #Queries 表按查询哈希值分组,并按期望的性能指标(如持续时间)降序排序,可以确定哪些查询对系统整体性能影响较大,从而优先进行调优。
以下是具体的查询代码:
SELECT
query_hash, SUM(duration) AS sumduration,
CAST(100. * SUM(duration) / SUM(SUM(duration)) OVER() AS NUMERIC(5, 2)) AS pct,
(SELECT TOP (1) statement
FROM #Queries AS Q2
WHERE Q2.query_hash = Q1.query_hash) AS queryexample
FROM #Queries AS Q1
GROUP BY query_hash
ORDER BY SUM(duration) DESC;
操作步骤如下:
1. 执行上述查询,获取不同查询模板的汇总信息,包括查询哈希、总持续时间、百分比和查询示例。
2. 根据查询结果,确定需要重点调优的查询。
3. 完成调优后,使用以下代码删除临时表和扩展事件会话:
DROP TABLE #Events, #Queries;
DROP EVENT SESSION query_perf ON SERVE
SQL Server查询调优核心策略
超级会员免费看
订阅专栏 解锁全文
565

被折叠的 条评论
为什么被折叠?



