sql-server – 如何知道何时/是否有太多索引?

前端之家收集整理的这篇文章主要介绍了sql-server – 如何知道何时/是否有太多索引?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
它时不时地运行Microsoft sql Server Profiler,它建议我创建一堆新的索引和统计数据(“……估计有97%的改进……”).

根据我的理解,每个添加的索引都可以使sql SELECT查询更快,但是由于必须调整索引,因此UPDATE或INSERT查询也会变慢.

我想知道的是,我什么时候有“太多”索引/统计数据?

也许没有明确的答案,但有一些经验法则.

解决方法

您的负载配置文件是回答此问题的最重要因素.

>如果您的负载是读密集型的,那么您希望索引满足最重或最频繁的查询.
>如果您的负载是写密集型的,请仔细索引.例如,满足寻求更新需求的索引,以及您的一个或两个最昂贵的SELECT.
>如果您的加载是OLAP加载,请谨慎索引,因为无论如何您都将扫描目标表.

你怎么知道索引太多了?

>当你可以通过任何查询看到其中一些are not used.
>频繁的DELETE,UPDATE或INSERT显示涉及几个昂贵的索引更改的查询计划(即非聚集索引insert,updatedelete).使用您的判断来确定对这些DML语句的惩罚是否值得从必须更新的索引中获得的收益.

猜你在找的MsSQL相关文章