我发现了错误"如果统计信息流已损坏"在SQL Server 2005上。是否有任何根本原因导致此错误?非常感谢任何评论。
答案 0 :(得分:2)
问题可能出在损坏的统计信息中,也可能出在自动创建的统计信息中。
要搜索问题统计信息,您可以使用:
EXEC sp_updatestats
EXEC将遍历所有表和统计信息,如果有问题,它将显示出哪个统计信息(更确切地说是表)是问题所在。
要删除自动创建的统计信息,可以使用以下脚本:
select 'drop statistics [' + OBJECT_NAME (OBJECT_ID) + '].[' + Name + ']' from sys.stats where auto_created = 1 and OBJECT_NAME (OBJECT_ID) = 'DB PROBLEM TABLE NAME'
该脚本将生成用于删除表DB PROBLEM TABLE NAME
表的自动创建的统计信息的行。
运行生成的行后,重新运行以下内容以检查错误:
EXEC sp_updatestats
不是多余的是
exec sp_msforeachtable N'UPDATE STATISTICS? WITH FULLSCAN'