索引多个数据列提高性能牛
SQL服务器只允许每个表格存在一个集群索引(clustered index),因为集群索引会记录表格,同时根据索引关键字安排数据。这就带来了极好的性能——当你只需要关心某个特定数据列的时候。
深化公立医院改革 但是,如果你想要通过一个以上的数据列来排列数据又会怎么样呢?你无法使用集群索引,但是你可以为多个数据列创建一个非集群索引,获得大幅的性能提升。
例如,加入你需要访问自己的Sales(销售)表格,并用SalesRep(销售代表)和Date(日期)来排序。你可以创建两个索引,并让查询优化器(QueryOptimizer)来判断你需要什么,或者你可以创建一个对这两个数据列的索引。SQL服务器允许在一个非集群索引里存在多达16个数据列。
每个非集群索引包含有由你指定的关键字值,再加上从集群索引获得的值;当你需要它们的数据时,这就会作为指向真实数据行的指针。这意味着查询引擎永远都不需要访问真正的数据行——如果你的非集群索引将你完成特定任务所需要的值作为关键字。它会从索引和范围获取所需的所有内容,然后访问符合条件的数据行。
这一技术不是魔术子弹。每个额外的索引都会增加插入(Insert)、删除(Delete)和更新(Update)操作的负担,所以你应该小心地使用它。但是,花些时间去检查应用程序里的大多数常见的查询和报告是值得的。很有可能的是,很多考虑周到的复合索引将会带来性能上的大幅提高,这些索引会影响不止一个索引。
这种方法的好处是,你总是可以进行撤销操作。如果性能的下降变得无法接受,你只用删除索引就行了。
本文作者:Arthur Fuller开发数据库应用程序已经有20年了。他的专业经验包括Access ADPs、微软SQL 2000、MySQL和.NET。
:李宁
欢迎评论或投稿
台州卵巢炎治疗哪家好石家庄哪家治妇科医院好
小孩消化不良怎么调理
- 上一页:索引为什么比表大简单的覆盖
- 下一页:索引多个数据列提高性能呢
-
在对的整整里,我遇见了最美的你
在对的间隔时间之中,我有一天了最美的你。倾尽人生,只为这一场动人的花...
2024-01-19
-
堪比好莱坞大片,看老黄如何运用三十六计,破2022高考数学分析的堡垒
2022年中考微积分全国卷I的填空压轴题,考卷人是铁了心要和试卷们自觉斗勇...
2023-11-29
-
芬兰将成为第三个被俄罗斯断供煤的欧洲国家
在拒绝以列伊现金后,挪威即将成为第三个被俄国断供天然气的中欧国家政府...
2023-11-06
-
结婚半年察觉到家暴:一段健康的恋情有多重要
小姐妹在昨天半夜打来电话,忍不住着和我却说,她被太太打了,原因是太太...
2023-10-28
-
恋就是让一个笨手笨脚的小女孩有人照顾 有人惦记 如果让她哭 你算什么男子汉 你算大笨蛋 艾特ta热门
恋人就是让一个笨手笨脚的莎拉有人照顾 有人惦记 如果让她不禁 你唯什么男...
2023-10-24
-
混合物芝麻酱,用水还是用油?弄错了,芝麻酱不香,不细腻也不顺滑
混和芝麻奶油,饮井水还是麦芽糖?才对了,芝麻奶油不香,不生动也不顺滑...
2023-10-23