索引多个数据列提高性能呢

模具加工设备/配件2021年09月06日

也就不敢披露信息了。 SQL服务器只允许每个表格存在一个集群索引(clustered index),因为集群索引会记录表格,同时根据索引关键字安排数据。这就带来了极好的性能——当你只需要关心某个特定数据列的时候。

但是,如果你想要通过一个以上的数据列来排列数据又会怎么样呢?你无法使用集群索引,但是你可以为多个数据列创建一个非集群索引,获得大幅的性能提升。

例如,加入你需要访问自己的Sales(销售)表格,并用SalesRep(销售代表)和Date(日期)来排序。你可以创建两个索引,并让查询优化器(Query Optimizer)来判断你需要什么,或者你可以创建一个对这两个数据列的索引。SQL服务器允许在一个非集群索引里存在多达16个数据列。

每个非集群索引包含有由你指定的关键字值,再加上从集群索引获得的值;当你需要它们的数据时,这就会作为指向真实数据行的指针。这意味着查询引擎永远都不需要访问真正的数据行——如果你的非集群索引将你完成特定任务所需要的值作为关键字。它会从索引和范围获取所需的所有内容,然后访问符合条件的数据行。

这一技术不是魔术子弹。每个额外的索引都会增加插入(Insert)、删除(Delete)和更新(Update)操作的负担,所以你应该小心地使用它。但是,花些时间去检查应用程序里的大多数常见的查询和报告是值得的。很有可能的是,很多考虑周到的复合索引将会带来性能上的大幅提高,这些索引会影响不止一个索引。

这种方法的好处是,你总是可以进行撤销操作。如果性能的下降变得无法接受,你只用删除索引就行了。

本文作者:Arthur Fuller开发数据库应用程序已经有20年了。他的专业经验包括Access ADPs、微软SQL 2000、MySQL和.NET。

:李宁

欢迎评论或投稿

来宾哪家医院白癜风医院好
重庆男科好医院
白城白癜风治疗
相关阅读
库尔勒市第十二中学:跨学科融为一体课 有“新”更有“心”

白沙瓦北区第十二初级里学:跨人文科学融入课 有“上新”更有“心” 一节...

2023-11-29
近一个月股价跌近50%,傲农生物:4月份起生猪出货头均毛利较一季度已明显改善

傲农生物5月底20日公告,目前,该公司各项主要业务生产经营均依然经常性稳...

2023-11-06
广州当前疫情传播链条清晰 主要传播分支基本得到支配

报导工作者从18日举行的上海市政府报导发布会上获悉,4年初17日15时至18日1...

2023-10-23
【安全保障】北京积水潭医院联合多部门开展“安全原材料月”消防演练

“当中控室,我是特需手脚术室护士,特需手脚术室前院发生受控,着火很大...

2023-10-19
8岁女童吃这种水果急性中毒!夏天千万不想这样吃→

夏末来了 又是爱吃长沙湾的好时节~ 果肉光亮脆滑 总让人忍不住多爱吃几颗...

2023-10-15
全球粮食危机加剧,中国如何应对?第三世界发展改革委回应

华北地区经济网沈阳4翌年19日讯(记者王婉莹)更进一步,受地区性政治冲突...

2023-10-14
友情链接