sql-server – 为什么在填写表之后,SQL Server的工作速度会更快?

前端之家收集整理的这篇文章主要介绍了sql-server – 为什么在填写表之后,SQL Server的工作速度会更快?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个sproc,通过查询将750K记录放入临时表中作为其第一个动作之一.如果我在填充之前在临时表上创建索引,与填充表之后的索引相比,该项目运行的时间大约是两倍. (索引是单列中的一个整数,索引的表只是两列,每个单个整数.)

这似乎对我来说有点偏差,但是对于发生什么事情我并没有最清楚的了解.有人有这个答案吗?

解决方法

如果创建聚簇索引,则会影响数据在磁盘上物理上的排序方式.最好在事实之后添加索引,并让数据库引擎在知道数据如何分配时对其进行排序.

例如,假设你需要用编号的砖块来建造一个砖墙,这样最高数量的砖头就在墙的底部.如果你只是按照随机的顺序递交砖块,那么这是一个艰巨的任务 – 你不会知道哪些砖块是最高的,你必须将墙壁撕开并重建它一遍又一遍.如果你把所有的砖块排列在你面前,那么这个任务会变得容易得多,可以组织你的工作.

这就是数据库引擎 – 如果你让它知道整个工作,它可以比一次只喂一行更有效率.

猜你在找的MsSQL相关文章