前几天在论坛看到有人在问为什么一张表上看不到SQL Server统计信息,这张表是新创建的HEAP表,并且没有索引,从来没有被访问过。 其实回答这个问题就要回到SQL Server是如何创建并且维护统计信息的。
SQL Server会在下面三种情况下创建统计信息:
1.在索引创建时SQL Server会自动在索引所在的列上创建统计信息
2.当SQL Server想要使用某些裂伤的统计信息,发现没有的时候会自动创建统计信息(前提是要开启自动创建统计信息)
3.用户可以使用create statistics手动创建统计信息
更多信息可以参考这两篇文章:
UnderstandingSQL Server Statistics
SQLServer Statistics