SQL Server 2005:查询统计信息

本文介绍如何使用sys.sysindexes目录视图查询SQL Server中的表级和列级统计信息,包括未创建聚簇索引的表统计信息、聚簇索引统计信息及列级统计信息的查询方法。

查询统计信息可以使用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@]

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

转载于:http://blog.itpub.net/37724/viewspace-997841/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值