我在SQL Server 2008中有一个CLR编译的存储过程,它始终工作正常。 但在数据库恢复后,它突然停止工作。它超时了。使用SSMS中的相同参数运行查询只需2秒即可完成。
我已经放弃并重新创建它,尝试了DBCC FREEPROCCACHE并重新运行,但都无济于事。它保持超时。因为它被大量使用,我无法取消数据库。
由于它是CLR编译的SP,我怀疑这是一个参数嗅探问题。
有人知道该怎么办吗?
答案 0 :(得分:1)
你试过这个命令吗?
ALTER DATABASE SomeDatabase SET TRUSTWORTHY ON
答案 1 :(得分:0)
AHA!问题是,在数据库恢复之后,应该再次运行查询优化统计信息,它们不会自动运行,因为导致速度减慢的表不会快速增长。
UPDATE STATISTICS'tablex'修复了它