数据库快照性能注意事

时间:2014-10-27 11:50:02

标签: sql-server sql-server-2008 sql-server-2012

我有一个非常大的存储过程,即超时。

该程序更新了大约15个不同的表。 它还从同一服务器中的不同数据库中读取数据。

我想重现环境,而不更改任何内容(在任何表中更新/插入数据)。

是否可以创建原始数据库的快照并在那里进行所有测试?

1 个答案:

答案 0 :(得分:1)

没有。数据库快照是只读的,因此该过程将无法执行任何操作。要重新解决问题,请让系统的数据库管理员为您提供数据库的备份。在您的开发/测试环境中恢复此备份并分析其中的问题。当您的proc从多个DB读取时,您还需要备份那些。理想情况下,开发/测试环境具有相同的硬件特性(相同的CPU /高速缓存/内存/磁盘),但这通常是不可能的。

阅读How to analyse SQL Server performance,了解在获得repro环境后需要注意的事项。确保解决实际问题,而不是由于硬件差异而导致repro环境中仅 的问题。

作为旁注,只需通过适当的监控,即可从生产服务器中非侵入地收集大量信息。再次阅读链接的文章。