Uwe*_*eim 26 performance index sql-server index-tuning
时不时地运行 Microsoft SQL Server Profiler,它建议我创建一堆新的索引和统计信息(“... 97% 估计改进...”)。
根据我的理解,每个添加的索引都可以使 SQLSELECT查询更快,但也会使UPDATEorINSERT查询变慢,因为必须调整索引。
我想知道的是,我什么时候有“太多”的索引/统计信息?
也许对此没有明确的答案,但有一些经验法则。
Nic*_*mas 26
您的负载配置文件是回答此问题的最重要因素。
如果您的负载是读取密集型的,您希望索引满足您最繁重或最频繁的查询。
如果您的负载是写入密集型的,请仔细索引。例如,索引可以满足一个 seek 和 UPDATE 的需求,以及你的一两个最昂贵的 SELECT。
如果您的负载是 OLAP 负载,请谨慎索引,因为无论如何您都将扫描目标表。
你怎么知道你有太多的索引?
当您可以看到其中一些未被任何查询使用时。
频繁的 DELETE、UPDATE 或 INSERT 显示了一个查询计划,该计划涉及多个昂贵的索引更改(即非聚集索引insert、update或delete)。使用您的判断来确定对这些 DML 语句的惩罚是否值得您从必须更新的索引中获得的收益。
| 归档时间: |
|
| 查看次数: |
20910 次 |
| 最近记录: |