SQL Server定期固定延迟

时间:2013-05-23 14:11:31

标签: php sql-server sql-server-2008 pdo winhttp

我们使用PHP 5.3和pdo_dblib连接到另一个框上的SQL Server 2008。

我们会定期(每天随机10次以上)经历3分钟的时间段,无论查询是什么,所有SQL Select查询都需要21.01秒才能运行。这是从PHP内部(在DB查询之前和之后)进行计时。

SELECT语句的范围从具有优化的复杂连接到具有单个表和显式索引的语句。

如果在PHP请求期间,我们在关闭数据库连接之前执行三个SELECT语句,则总时间将为63.03秒(21.01 * 3)。这同样适用于2个陈述(42.02秒)。

使用SQL Server工具,我们跟踪这些脚本的实际执行时间在0.01到0.45秒之间,但这些差异似乎并未反映在整体延迟中(它总是固定在21.01,而不是21.46)等等。)

我们似乎确实在这些延迟期开始时发现WinHTTP代理触发的某些相关性,但我们已禁用WinHTTP代理而没有解决方案。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

当您查看执行计划时,哪些活动占据了最大比例的资源?我特别注意索引扫描或密钥/书签/ RID查找。我还会查看连接每个活动的行,并查看正在应用的记录数。最后,使用Actual Query计划而不是估计计划运行查询,然后查看为每个操作返回的Actual vs Estimated行。他们应该是平等的。如果不是,则表明您的统计信息已关闭。