SqlServer 聚集索引真的是最好了吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SqlServer 聚集索引真的是最好了吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1735字,纯文字阅读大概需要3分钟。
内容图文
![SqlServer 聚集索引真的是最好了吗?](/upload/InfoBanner/zyjiaocheng/448/f6672edfa45a4e439c72dcbb7debca33.jpg)
当前聚集索引键列为:([UserAcount],[UserName])
现考虑4种索引创建方法,到底哪种比较较好!~
-- DROP INDEX IX_TestTab ON [TestTab] CREATE NONCLUSTERED INDEX IX_TestTab ON [TestTab]([UserAcount],[crdatetime]) CREATE NONCLUSTERED INDEX IX_TestTab ON [TestTab]([crdatetime]) CREATE NONCLUSTERED INDEX IX_TestTab ON [TestTab]([crdatetime],[UserAcount]) CREATE NONCLUSTERED INDEX IX_TestTab ON [TestTab]([crdatetime])INCLUDE([value],[Info])
--第一种: CREATE NONCLUSTERED INDEX IX_TestTab ON [TestTab]([UserAcount],[crdatetime])
![SqlServer 聚集索引真的是最好了吗? - 文章图片](/upload/getfiles/0001/2021/4/24/20210424094252970.jpg)
这种还是使用聚集索引,并没有用到新的索引,因为新的索引第一个键列为 [UserAcount],与聚集索引一样,所以只要有[UserAcount] ,查询就使用聚集索引了!这个索引加上去也是白加。
--第二种: CREATE NONCLUSTERED INDEX IX_TestTab ON [TestTab]([crdatetime])
![SqlServer 聚集索引真的是最好了吗? - 文章图片](/upload/getfiles/0001/2021/4/24/20210424094253635.jpg)
这个查询使用了索引查找,直接按列 [crdatetime] 查询,但是其他不包含在索引的列,使用了键查找。还得在索引子页中查找非索引列。并且锁少了很多!!
--第三种: CREATE NONCLUSTERED INDEX IX_TestTab ON [TestTab]([crdatetime],[UserAcount])
![SqlServer 聚集索引真的是最好了吗? - 文章图片](/upload/getfiles/0001/2021/4/24/20210424094254188.jpg)
这种查询的执行计划与上面的一致,因为缓存计划进行了参数化,两者执行语句一样,使用的索引不影响执行计划。而且锁定的资源几乎一样。这个索引的另一列 [UserAcount] 其实是多余了,因为非聚集索引中都会包含聚集索引的键列。所以这个索引的第二列[UserAcount]可以去掉了。
--第四种: CREATE NONCLUSTERED INDEX IX_TestTab ON [TestTab]([crdatetime])INCLUDE([value],[Info])
![SqlServer 聚集索引真的是最好了吗? - 文章图片](/upload/getfiles/0001/2021/4/24/20210424094254751.jpg)
这个锁定的资源就比较直接了!~完全使用非聚集索引查找,查询直接定位到数据行!~
所以对于聚集索引,应尽量使用唯一列作为聚集索引,或者最为键列的数据尽量不要重复,这样才能以最快速度定位到行。若没有唯一列,像上面的例子中,聚集索引和另一个比较有效的列作为组合索引聚集索引!~
SqlServer 聚集索引真的是最好了吗?
标签:
本文系统来源:http://blog.csdn.net/kk185800961/article/details/46010497
内容总结
以上是互联网集市为您收集整理的SqlServer 聚集索引真的是最好了吗?全部内容,希望文章能够帮你解决SqlServer 聚集索引真的是最好了吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。