最近在我们的生产服务器上 - 我们已经开始面对一些问题 - 查询哪些用法只需5分钟,需要超过30分钟才能完成。SQL Server - 存储过程执行时间问题
有时他们恢复正常。我没有检查任何数据量的变化,但仍然查询运行有时慢,有时快。
如何诊断这些类型的问题。
问候
最近在我们的生产服务器上 - 我们已经开始面对一些问题 - 查询哪些用法只需5分钟,需要超过30分钟才能完成。SQL Server - 存储过程执行时间问题
有时他们恢复正常。我没有检查任何数据量的变化,但仍然查询运行有时慢,有时快。
如何诊断这些类型的问题。
问候
你有没有看到,休息用,估计的执行计划在SQL Management Studio中的查询。而运行你的查询下的查询?它会给你执行查询花费的时间百分比。
听起来parameter sniffing(SO几个链接)
快速的方法来检查运行sp_updatestats
,看看它是否修复该问题。这将注销所有的查询计划,并确认(或不)参数嗅探
有关详细信息,由厄兰Sommarskog阅读"Slow in the Application, Fast in SSMS?"
把下面的行放在PROC每一步之后它会帮助你找出哪些部分占用了多少时间。所以你可以找出原因。它帮助我所有的时间
打印转换(VARCHAR(50),GETDATE(),109)
附:在执行你的proc后,看到消息标签那里它会显示你的日期时间毫秒
程序是近5000行的代码 - 通过执行计划寻找是困难的。它只是一个SELECT命令与很多联接 - 在哪里把这个打印转换... –
我不明白它,一方面你说它的5000行n然后你说它只是一个选择声明。 在选择语句之前会有一些数据处理...我想是的 –