根据我的理解,每个添加的索引都可以使sql SELECT查询更快,但是由于必须调整索引,因此UPDATE或INSERT查询也会变慢.
我想知道的是,我什么时候有“太多”索引/统计数据?
也许没有明确的答案,但有一些经验法则.
>如果您的负载是读密集型的,那么您希望索引满足最重或最频繁的查询.>如果您的负载是写密集型的,请仔细索引.例如,满足寻求更新需求的索引,以及您的一个或两个最昂贵的SELECT.>如果您的加载是OLAP加载,请谨慎索引,因为无论如何您都将扫描目标表.
你怎么知道索引太多了?
>当你可以通过任何查询看到其中一些are not used.>频繁的DELETE,UPDATE或INSERT显示涉及几个昂贵的索引更改的查询计划(即非聚集索引insert,update或delete).使用您的判断来确定对这些DML语句的惩罚是否值得从必须更新的索引中获得的收益.