SQL Server 2005:查询统计信息

来源:这里教程网 时间:2026-03-02 10:00:05 作者:

查询统计信息可以使用sys.sysindexes目录视图,表级统计信息保存在其rows及dpages两个列,列级统计信息保存在其statblob列中,这是一个blob类型字段。

查询表级统计信息:

sysindexes中的name列,存储索引的名称,对于 表,name列为空,indid0,这时可以通过sysindexes中的id列及indid列作为查询条件获得指定表的统计信息。

1> select object_name(id) obj_name, dpages, rows

2> from sys.sysindexes

3> where indid=0 and id=object_id('t')

4> go

obj_name dpages rows

--------------- ----------- -----------

t 9 2208

如果表上创建了聚簇索引,则sysindexes中不再保存表的统计信息,而只能查到其聚簇索引的统计信息,这时其indid列的值为1,如果是非聚簇索引,则其indid列的值大于1。要查询索引(包括聚簇与非聚簇索引)的统计信息,可以使用下面命令:

1> select object_name(id) obj_name, name, indid, dpages, rows

2> from sys.sysindexes

3> where name='idx_clu'

4> go

obj_name name indid dpages rows

-------------- ---------------- -------- ----------- -----------

t idx_clu 1 7 2208

查询列级统计信息:

dbcc show_statistics(表名, 列名)

或者

dbcc show_statistics(表名, 统计名称)

这里要注意,列级统计信息可能还未创建,也有可能列级统计信息是过时的。

查询表上已经创建的统计信息名称:

sp_helpstats 表名

或者

sp_helpstats 表名, 'all'

[@more@]

相关推荐