UB0*_*B01 1 sql-server-2005 sql-server-2008 statistics index-statistics
有没有办法以编程方式检索添加到表列和索引的每个 STATISTICS 的定义。对于用户添加的和系统创建的索引。Sql Server 添加了许多像“__WA_Sys_*”这样的统计信息。
我需要重新编写其中一些并添加更多内容,但是有太多内容无法使用 Management Studio 手动完成。
在sys.stats
和之间,DBCC SHOW_STATISTICS
您拥有查看统计数据所需的所有信息。例如。:
set nocount on;
declare @object nvarchar(256), @stat sysname;
declare crs cursor forward_only read_only static for
select quotename(object_schema_name(object_id)) +
'.' +quotename(object_name(object_id)),
name
from sys.stats;
open crs;
fetch next from crs into @object, @stat;
while 0 = @@FETCH_STATUS
begin
dbcc show_statistics(@object, @stat) with NO_INFOMSGS, STAT_HEADER
fetch next from crs into @object, @stat;
end
close crs;
deallocate crs;
Run Code Online (Sandbox Code Playgroud)
话虽如此,任何了解何时需要更新统计数据的人都已经知道如何查找它们,所以我敢猜测您不应该手动更新统计数据。