有没有办法以编程方式检索添加到表列和索引的每个 STATISTICS 的定义。对于用户添加的和系统创建的索引。Sql Server 添加了许多统计信息,例如“__WA_Sys_*”。
我需要重写其中的一些并添加更多,但是有太多无法使用 Management Studio 手动完成。
有没有办法以编程方式检索添加到表列和索引的每个 STATISTICS 的定义。对于用户添加的和系统创建的索引。Sql Server 添加了许多统计信息,例如“__WA_Sys_*”。
我需要重写其中的一些并添加更多,但是有太多无法使用 Management Studio 手动完成。
在
sys.stats
和之间,DBCC SHOW_STATISTICS
您拥有查看统计数据所需的所有信息。例如。:话虽这么说,任何了解何时需要更新统计信息的人都已经知道如何查找它们,所以我敢猜测您不应该手动更新统计信息。
在http://www.toadworld.com/platforms/sql-server/w/wiki/9680.updating-statistics.aspx(好读)有一个我不完全理解的查询,但我把它转换成了这个,下面(SQL Server 2005)。输出:
显然其中一些来自索引。您可能可以改进查询以删除那些;你不需要副本。当然,您可以添加“WITH FULLSCAN”。
我对这个很感兴趣,因为我们把企业数据连夜加载到一些数据库中,这样白天就可以运行报表。如果我在夜间运行期间生成一些统计数据——“WITH FULLSCAN”——那么报告将运行得更好,因为它们不需要进行统计。如果 SQL Server 创建统计信息,我不认为真的需要在列上创建索引,但我会考虑一下。事实上,我不明白[+]为什么在可以有索引的时候只有统计数据,但我认为这是有充分理由的![+]嗯,我明白了一点——否则那不是一篇很好的文章!
罗伯特卡内基,喜欢索引!