超时expired.The超时时间已过的 操作完成之前或在服务器未响应`exec sp_updatestats`命令的副作用是什么?
我得到执行查询的超时错误。我从谷歌和stackoverflow搜索了一些解决方案。有人建议使用exec sp_updatestats
来解决这个问题,但有人建议避免使用exec sp_updatestats
命令。
exec sp_updatestats
指令的副作用是什么?
超时expired.The超时时间已过的 操作完成之前或在服务器未响应`exec sp_updatestats`命令的副作用是什么?
我得到执行查询的超时错误。我从谷歌和stackoverflow搜索了一些解决方案。有人建议使用exec sp_updatestats
来解决这个问题,但有人建议避免使用exec sp_updatestats
命令。
exec sp_updatestats
指令的副作用是什么?
那么,根据文档,sp_updatestats当你运行它时会做某些事情。
sp_updatestats执行UPDATE STATISTICS,通过指定ALL关键字,对数据库中的所有用户定义的和内部表。 sp_updatestats显示指示其进度的消息。更新完成后,它会报告已更新所有表的统计信息。 sp_updatestats更新已禁用非聚簇索引的统计信息,并且不更新已禁用聚簇索引的统计信息。
对于基于磁盘的表,sp_updatestats仅更新需要基于在sys.dm_db_stats_properties目录视图中的信息modification_counter,从而避免对没有变化的行统计的不必要的更新更新所述统计数据。在执行sp_updatestats时,内存优化表的统计信息始终会更新。因此,不要执行以上sp_updatestats以上。
sp_updatestats可以触发存储过程或其他编译代码的重新编译。但是,如果只有一个查询计划可用于引用的表及其索引,则sp_updatestats可能不会导致重新编译。即使更新统计数据,在这些情况下也不需要重新编译。
对于兼容性级别低于90的数据库,执行sp_updatestats不保留针对特定统计信息的最新NORECOMPUTE设置。对于兼容性级别为90或更高的数据库,sp_updatestats确实会为最新的NORECOMPUTE选项保留特定统计信息。
要解决,你不应该在你的存储过程调用这个函数超时错误,你应该调查使用所发生的事情在该查询执行计划,什么是瓶颈。创建缺少的索引,然后再次查看执行计划。
该函数应该从维护计划中偶尔调用一次,而不是从udfs的sps中调用。
你在哪里执行你的查询,在你的客户端applivation?所有你需要的是配置另一个超时 – sepupic