Sql server 经典ASP-通过记录集循环速度慢,查询执行良好

Sql server 经典ASP-通过记录集循环速度慢,查询执行良好,sql-server,sql-server-2008,vbscript,asp-classic,Sql Server,Sql Server 2008,Vbscript,Asp Classic,本周,我们的大型结果集查询500多条记录的返回速度突然慢了很多,有时甚至超时。这些通常会在几秒钟内选择、循环和显示。现在可能需要20秒到1分钟。如果从本地计算机或服务器执行查询,它会在不到1秒的时间内返回所有数据 我看过很多东西,似乎没有什么不合适的地方,所以我想看看是否有人有任何建议。上周我们确实换了一台新的web服务器,但我刚刚在旧服务器上测试了这些相同的页面,这是相同的问题。SQL server仍然是一样的。这是一个例子。删除的**代码部分仅为if-then类型。使用SQLServer20

本周,我们的大型结果集查询500多条记录的返回速度突然慢了很多,有时甚至超时。这些通常会在几秒钟内选择、循环和显示。现在可能需要20秒到1分钟。如果从本地计算机或服务器执行查询,它会在不到1秒的时间内返回所有数据

我看过很多东西,似乎没有什么不合适的地方,所以我想看看是否有人有任何建议。上周我们确实换了一台新的web服务器,但我刚刚在旧服务器上测试了这些相同的页面,这是相同的问题。SQL server仍然是一样的。这是一个例子。删除的**代码部分仅为if-then类型。使用SQLServer2008。这让我觉得它是到SQL盒或SQL本身的外部连接。我昨天确实重新启动了,我觉得没什么变化

提前向任何试图帮助你的人表示感谢!!我知道这些很难诊断

'获取过去的交易以计算到目前为止的任何退款 Set rsReport=Server.CreateObjectADODB.Recordset rsReport.ActiveConnection=strConn rsReport.Source=EXEC sp_MyStoredProc&ID rsReport.CursorType=3 rsReport,打开 Response.Write&vbcrlf 直到rsReport.EOF为止 CurreId=rsReportERID “**代码已删除 '测试下一个ERID是否相同。如果不是,则下一个订单是新客户,因此请检查并关闭当前订单。 rsReport.MoveNext bMovePrevious=False “请确保不要在结尾处 如果不是rsReport.EOF,则 如果CurrERID rsReportERID,则 “当我们不在EOF时,在我们进行处理后移动上一步需要正确的期权价格 bMovePrevious=True 其他的 “回到以前的记录,保持我们在RS中的位置 rsReport.MovePrevious 如果结束 如果是以前的话 “回到以前的记录,保持我们在RS中的位置 rsReport.MovePrevious 如果结束 如果不计入实际费用,则结束 NextERID=rsReportERID rsReport.MoveNext 环 报告完毕 设置rsReport=Nothing Response.Write&vbcrlf
大型查询中突然或突然影响性能的无法解释的更改通常归结为查询执行计划的更改,请尝试重置SQL Server中的统计信息,看看它是否恢复正常。当您使用存储过程时,可能会尝试通过重新编译添加以停止缓存执行计划,这将突出显示任何计划问题。还值得在SSMS中测试存储过程的执行情况,以了解它的执行情况。可能是时候在表中重建索引了吗?重置统计信息-由此可能产生的任何问题?以前从未做过,怎么做?另外,当我在SSMS中运行时,它会在不到一秒钟的时间内返回所有内容。索引是个好主意,但在大多数较大的查询中,我们只是根据主键字段进行选择。我必须检查是否有索引,我们可以根据其他列进行选择。如果没有一些细节,我们唯一能做的就是猜测。执行计划、表定义、索引定义、存储的过程代码。所有这些都与这类事情有关。