ahsan Asked: 2010-12-10 10:16:54 +0800 CST2010-12-10 10:16:54 +0800 CST 2010-12-10 10:16:54 +0800 CST 什么时候全表扫描比索引扫描更好? 772 在哪些情况下(在 SQL Server 中),全表扫描优于索引扫描? sql-server execution-plan 4 个回答 Voted gbn 2010-12-10T10:24:56+08:002010-12-10T10:24:56+08:00 当。。。的时候 表足够小 没有实际区别 从统计上讲,无论如何您都会返回大多数行 第二种情况需要排位赛 如果索引覆盖,索引扫描将替换索引查找 需要键/书签查找的具有许多行的索引查找或扫描会很昂贵,而表扫描可能会更好 最后 对于聚集索引,索引扫描和表扫描几乎相同 Best Answer user529707 2010-12-10T10:20:21+08:002010-12-10T10:20:21+08:00 当记录的选择性非常高时,全表扫描总是比通过索引扫描更好。 http://www.techipost.com/single-index-versus-full-table-scan/ 由 gbn 编辑: 例如,如果需要许多键查找(例如,非聚集索引到非键数据的聚集索引),优化器可能会决定更容易扫描表/聚集索引。 或者您在索引列中没有很多不同的值 marc_s 2010-12-10T10:20:42+08:002010-12-10T10:20:42+08:00 如果表 非常小 进行索引扫描,然后对基表进行多次书签查找的成本比全表扫描更昂贵 Cade Roux 2010-12-10T10:21:02+08:002010-12-10T10:21:02+08:00 以什么方式更好? 如果索引没有覆盖,优化器可能会选择表扫描,因为索引扫描仍然需要通过书签查找来增强。 在这些情况下,索引不佳的表并不比未索引的表好。 http://www.sqlservercentral.com/articles/Performance+Tuning/bookmarklookups/1899/
当。。。的时候
第二种情况需要排位赛
最后
当记录的选择性非常高时,全表扫描总是比通过索引扫描更好。
http://www.techipost.com/single-index-versus-full-table-scan/
由 gbn 编辑:
例如,如果需要许多键查找(例如,非聚集索引到非键数据的聚集索引),优化器可能会决定更容易扫描表/聚集索引。
或者您在索引列中没有很多不同的值
如果表
以什么方式更好?
如果索引没有覆盖,优化器可能会选择表扫描,因为索引扫描仍然需要通过书签查找来增强。
在这些情况下,索引不佳的表并不比未索引的表好。
http://www.sqlservercentral.com/articles/Performance+Tuning/bookmarklookups/1899/