Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server查询超时运行几次后,唯一的修复方法是DROPCLEANBUFFERS或重新启动SQL Server_Sql_Sql Server_Ssms - Fatal编程技术网

SQL Server查询超时运行几次后,唯一的修复方法是DROPCLEANBUFFERS或重新启动SQL Server

SQL Server查询超时运行几次后,唯一的修复方法是DROPCLEANBUFFERS或重新启动SQL Server,sql,sql-server,ssms,Sql,Sql Server,Ssms,我有一个复杂的查询,它连接具有大量数据的表。应用程序运行几次后,查询超时。我可以让它重新工作的唯一方法是重新启动SQL Server或运行: DBCC DROPCLEANBUFFERS; 有人能告诉我应该调查哪些事情吗?我正在努力缩小需要做什么来解决这个问题。有没有办法完全禁用查询的缓存?缓存似乎是导致查询最终超时的原因。您的查询可能有过期的统计信息,请尝试更新查询中涉及的所有表的统计信息,这为SQLServer提供了一个获得正确估计值的好机会,这也降低了几项授权 如果在更新统计信息后仍发生这

我有一个复杂的查询,它连接具有大量数据的表。应用程序运行几次后,查询超时。我可以让它重新工作的唯一方法是重新启动SQL Server或运行:

DBCC DROPCLEANBUFFERS;

有人能告诉我应该调查哪些事情吗?我正在努力缩小需要做什么来解决这个问题。有没有办法完全禁用查询的缓存?缓存似乎是导致查询最终超时的原因。

您的查询可能有过期的统计信息,请尝试更新查询中涉及的所有表的统计信息,这为SQLServer提供了一个获得正确估计值的好机会,这也降低了几项授权

如果在更新统计信息后仍发生这种情况,请尝试微调查询

要更新统计信息,请使用下面的查询..同时尝试运行完全扫描,即使并非所有情况下都需要这样做

UPDATE STATISTICS tablename with fullscan;  

Gameiswar建议更新统计数据是一个非常好的主意。不过,即使更新统计信息缓解了超时问题,您也可能需要进一步调查

听起来您得到的查询计划只适用于发送给它的某些参数,这可能是参数嗅探造成的;尤其是在数据严重倾斜的情况下

您是否尝试过将
选项(重新编译)
添加到查询中,或者如果是一个过程,是否尝试过使用重新编译

你看过执行计划了吗

参考:


如何更新统计信息?SQL Server从不超时查询。是取消查询的应用程序。为什么要标记问题
ssms
,查询是否从Management Studio运行?SSMS也不会使查询超时。您有性能问题,请对此进行分析。很好的链接。