由于数据库变得相当大,我最近将一堆表从现有数据库移动到新数据库中。在这样做之后,我注意到在针对新数据库运行时查询性能显着下降。
我重新创建新数据库的过程如下:
有没有人对我的流程可能出现的问题有任何想法,或者我错过了导致此性能问题的一些关键步骤?
感谢。
答案 0 :(得分:5)
首先我会确保启用自动创建统计信息,您还可以将自动更新统计信息设置为true
之后我会通过运行
来更新统计数据sp_updatestats
或
UPDATE STATISTICS
还要意识到,第一次点击查询时它会更慢,因为没有任何内容会缓存在RAM中。在第二次击中应该快得多
答案 1 :(得分:4)
您是否编写了原始数据库中表的索引?缺少索引肯定会导致性能不佳。
答案 2 :(得分:3)
在运行这些查询时,您是否尝试查看每台服务器上的执行计划 - 这应该可以让您轻松查看他们是否正在执行不同的操作,例如:因缺少索引,统计数据不佳等原因进行表扫描。
这两个数据库是否与同一驱动器阵列上的数据文件位于同一个盒子上?
答案 3 :(得分:2)
你能告诉那些有关这些查询的速度变慢了吗?新的访问计划?相同的计划,但他们表现较慢?他们执行更慢还是暂停更多? 所有查询都变得慢了还是只有一些?最后但并非最不重要的是,你怎么知道,即。你究竟测量了什么以及如何测量?
一些常见的嫌犯可能是:
答案 4 :(得分:0)
了解如何设置初始大小和增长选项。如果你没有给它足够的空间开始,或者如果你在一个可能导致性能问题的时候增长1MB。