ITPub博客

首页 > 数据库 > SQL Server > SQL Server 2005:查询统计信息

SQL Server 2005:查询统计信息

原创 SQL Server 作者:lawzjf 时间:2008-01-21 01:08:41 0 删除 编辑

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

查询表级统计信息:

sysindexes中的name列,存储索引的名称,对于 表,name列为空,indid为0,这时可以通过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@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/37724/viewspace-997841/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-18

  • 博文量
    279
  • 访问量
    990835