【发布时间】:2015-07-01 23:09:02
【问题描述】:
我们有一个暂存数据库 (SQL Server 2012),它只是一个虚拟机和一个集群生产数据库 (SQL Server 2008)。它们都具有完全相同的数据库架构。暂存的数据少一点,但差别不大。
最近我注意到,当我在两者上运行相同的存储过程时,生产数据库比登台慢 4-5 倍。从统计信息 IO 中,我可以看到一般生产数据库有更多的逻辑读取。
它们都具有相同的架构,因此不会是索引问题。生产中的内存可能有问题吗?
更新
我还注意到,在客户端统计数据中,暂存数据库的“服务器回复等待时间”(8-12)明显低于生产(160-170)
【问题讨论】:
-
也许统计数据过时了?
-
碎片可能是个问题吗?尤其是如果您最近创建了一个数据库而另一个是长期存在的? msdn.microsoft.com/en-us/library/ms189858.aspx
-
rlb.usa,您是指索引中的碎片吗?我重建了所有相关索引,但仍然无济于事。
-
已检查查询执行计划
-
meda,查询计划显示没有什么不同。这是完全相同的查询,在暂存时运行速度很快,但在生产环境中运行速度很慢。
标签: sql-server sql-server-2008 sql-server-2012