列为,由于公司原因,作者接触了一个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