列為,由于公司原因,作者接觸了一個SQLServer 2022作為數據存儲到項目,可能是上一任的哥們兒離開的時候帶有情緒,所以現在項目的主要問題就是,所有功能都實現了,但是就是慢,列表頁3s打底,客戶很生氣,經過幾周摸爬滾打,作以下總結,作為自己的成長記錄。
一、索引問題
1.1 缺少合適索引
示例:
-- 沒有為WHERE條件列建立索引 SELECT * FROM Orders WHERE CustomerID = 10045;
排查方法:
-- 檢查缺失索引建議 SELECT migs.avg_total_user_cost * (migs.avg_user_impact / 100.0) * (migs.user_seeks + migs.user_scans) AS improvement_measure, mid.statement AS table_name, mid.equality_columns, mid.included_columns FROM sys.dm_db_missing_index_group_stats migs INNER JOIN sys.dm_db_missing_index_groups mig ON migs.group_handle = mig.index_group_handle INNER JOIN sys.dm_db_missing_index_details mid ON mig.index_handle = mid.index_handle ORDER BY improvement_measure DESC;
1.2 索引碎片化
示例:
-- 查詢性能逐漸變慢的表 SELEC