0

我在每200毫秒运行一次的SQL Server 2008 Express SP2数据库上有一个很大的存储过程。正常执行时间约为50ms。我所看到的是在这个运行时间中存在很大的不一致。它会执行一段时间,比如在预期的40-60ms执行50-100次,然后看起来随机地执行相同的存储过程将花费更长的时间,比如说运行900ms或1.5秒。有时连续调用同一过程的时间也会更长。SQL Server Express 2008存储过程执行时间周期性高峰

似乎有什么东西导致sql server每分钟大幅度减速,但我无法弄清楚什么。发生之间没有时间模式。

我在两台不同的计算机上有相同的设置,其中一台是干净的XP专业版加载,没有病毒检查,没有安装除SQL服务器。

此外,所有数据库的恢复选项均设置为“简单”。

+1

SP做了什么?大量的读取或写入或两者? – spender 2010-05-13 00:20:28

+0

,这是唯一击中服务器?如果SP正在将行插入表中,而另一组查询正在运行以读取该表,则可能因为其他进程而正在运行锁争用。如果这是在执行大量的插入操作,则可能还会遇到一些排序页面的过程。 – 2010-05-13 00:26:30

+0

建议您启动SQL 2008的Data Collector:http://msdn.microsoft.com/en-us/library/bb677248.aspx – 2010-05-13 00:31:54

回答

0

我建议将适用的部分分解到自己的存储过程中;每批只有一个查询计划被缓存。

0

它看起来像我的问题与SQL Server计划缓存对象计数打999和重置同时发生。

+0

这意味着proc本身正在重新编译。 – NotMe 2010-05-13 21:13:52

相关问题