我正在我的MS 2008数据库上做索引报告(右键单击数据库-> Reports ->索引使用统计数据)
它告诉我,我的一个索引使用: 88用户查找0用户扫描6,134,141用户更新。
谁能跟我解释一下:
我认为在这种情况下,维持指数的成本是不值得的。
发布于 2010-08-31 17:42:17
文章中的“狙击手”(当然要读一读):
扫描
索引扫描是对索引中所有叶页的完整读取。当对聚集索引进行索引扫描时,除了名称之外,它是一个表扫描。
当查询处理器完成索引扫描时,无论是否返回所有行,它总是对索引中的所有叶页进行完整读取。这绝不是局部扫描。
扫描不仅涉及读取索引的叶级,更高级别的页面也作为索引扫描的一部分读取。
寻求
索引查找是一种操作,其中SQL使用b-树结构来定位一个特定的值或一个值范围的开始。要使索引成为可能,必须有在查询中指定的SARGable3谓词和匹配(或部分匹配)索引。匹配索引是查询谓词使用索引列的基于左的子集的索引。这将在本系列的第3部分中进行更详细的研究。
从根页面开始对查找操作进行评估。使用根页中的行,查询处理器将定位索引下一个较低级别中的哪个页包含正在搜索的第一行。然后,它将阅读这一页。如果这是索引的叶级,搜索就在那里结束。如果不是叶,则查询处理器再次标识下一个较低级别中的哪个页包含指定的值。这一过程一直持续到叶片水平达到。
查询处理器找到包含指定键值或指定键值范围开始的叶页后,沿着叶页读取,直到返回与谓词匹配的所有行为止。
发布于 2010-08-31 17:34:05
首先要注意的一点是:每次数据库启动时都会重置索引使用统计信息。所以,很难在不知道你最后一次重新开始的时间的情况下评估你的88次寻找。最后一个小时的88寻找与上个月的88寻找是完全不同的。
https://stackoverflow.com/questions/3611389
复制相似问题