SQL Server 2005:查詢統計資訊

lawzjf發表於2008-01-21

查詢統計資訊可以使用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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章