sql-server – SQL Server群集索引是否替换了RID查找“索引”
当SQL Server中的表具有聚簇索引时,是否意味着所有索引查询将通过聚簇索引进行?
例如,如果我有一个具有单个非聚集索引的表(索引一列)并通过该列搜索一行,则它将执行Index Seek – > RID – >数据行查找 – >结果 但是,如果我在不同的列上添加聚簇索引,那么相同的查询将执行以下索引搜索 – >提取聚类键 – >聚集索引搜索 – >结果 这对我来说意味着非聚集索引不再在叶子处使用RID,而是使用聚簇索引的聚类密钥“终止”是对的吗? 解决方法是的,你有很多想法.当您有聚簇索引时,任何非聚集索引还将包含聚簇索引中的列作为实际数据的“查找”. 如果您搜索非聚集索引中的值,并且您需要访问底层数据的其余列,那么SQL Server将从该非聚集索引中进行“书签查找”(或“密钥查找”)到聚集索引(其中包含数据本身,在叶级节点中).使用聚簇索引,您不再需要RID了,因此,如果RID更改(数据从一个页面移动到另一个页面),则不必更新所有索引页面. 书签查找是相当昂贵的操作,因此您可以通过INCLUDE语句向非聚集索引添加其他列.这样,您的非聚集索引将在其叶级页面上包含这些附加列,如果只需要包含在该数据集中的列,则可以从非聚集索引本身满足您的查询(在该集合索引中)情况下,它被称为“覆盖索引”),您可以自己保存一系列书签查找. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- SQLSERVER使用密码加密备份文件以防止未经授权还原数据库
- sql-server – 本地化SQL Server(2005/2008)数据库的最佳做
- 必须会的SQL语句(七) 字符串函数、时间函数
- 数据库和Web服务调用之间的速度差异是什么?
- sql-server – 如果我更改了Windows域用户名,我的SQL Serve
- SQLserver中用convert函数转换日期格式的方法
- 数据库支持i18n for java web-app
- 为数据库生成某个字段充填随机数的存储过程
- SQL Server 2005导入至2000的方法及注意事项
- SqlServer2005(2000)数据库字典,将表数据生成SQL脚本的存