DBCCPAGE、DBCCLOG、DBCCEXTENTINFO、DBCCIND、DBCCSHOW_STATISTICS、DBCCSHOWCONTIG、DBCCSQLPERF(二)

2014-11-24 17:06:35 · 作者: · 浏览: 1
) NULL) INSERT INTO TEST SELECT 1,'abcdefg' UNION ALL SELECT 2,'hijklmn' --SELECT * FROM TEST SELECT * FROM sys.tables WHERE name = 'test' --2.索引id select name, index_id -- 0 from sys.indexes where object_id = object_id('test') --3.创建表 if exists(select * from sys.tables where name = 'dbcc_ind') drop table dbcc_ind go create table dbcc_ind ( PageFID numeric(20), PagePID numeric(20), IAMFID numeric(20), IAMPID numeric(20), ObjectID numeric(20), IndexID numeric(20), PartitionNumber numeric(20), PartitionID numeric(20), iam_chain_type nvarchar(100), PageType numeric(20), IndexLevel numeric(20), NextPageFID numeric(20), NextPagePID numeric(20), PrevPageFID numeric(20), PrevPagePID numeric(20) ) go --4.建存储过程 if exists(select * from sys.procedures) drop procedure proc_dbcc_ind go create procedure proc_dbcc_ind as dbcc ind(master,test,0) go insert into dbcc_ind exec proc_dbcc_ind --5.一共2页,分别是IAM页1402,数据页1401 select PageFID, PagePID, OBJECTID, IndexID, PartitionNumber, PartitionID, iam_chain_type, PageType, IndexLevel, NextPageFID, --下一页的文件id NextPagePID, --下一页的页id PrevPageFID, PrevPagePID from dbcc_ind

4、DBCC SHOW_STATISTICS

DBCC SHOW_STATISTICS 显示表或索引视图的当前查询优化统计信息。 查询优化器使用统计信息估计查询结果中的基数或行数,这样,查询优化器可以创建高质量的查询计划。 例如,查询优化器可以使用基数估计在查询计划中选择索引查找运算符而不是索引扫描运算符,从而通过避免消耗大量资源的索引扫描来提高查询性能。

查询优化器将表或索引视图的统计信息存储在统计信息对象中。 对于表,统计信息对象是根据索引或表列的列表创建的。 统计信息对象包含一个带有统计信息的相关元数据的标题、一个带有统计信息对象第一个键列中的值的分布的直方图,以及一个用于度量各列之间的相关性的密度向量。 数据库引擎可以使用统计信息对象中的任何数据计算基数估计。

语法:

DBCC SHOW_STATISTICS ( table_or_indexed_view_name , target ) 
[ WITH [ NO_INFOMSGS ] < option > [ , n ] ]
< option > :: =
    STAT_HEADER | DENSITY_VECTOR | HISTOGRAM | STATS_STREAM

table_or_indexed_view_name
要显示其统计信息的表或索引视图的名称。

target
要显示其统计信息的索引、统计信息或列的名称。 
如果 target 是表或索引视图的现有索引或统计信息的名称,则返回有关此目标的统计信息。 
如果 target 是现有列的名称,且此列中存在自动创建的统计信息,则返回有关该自动创建的统计信息的信息。 
如果列目标中不存在自动创建的统计信息,则返回错误消息 2767。

NO_INFOMSGS
取消严重级别从 0 到 10 的所有信息性消息。

STAT_HEADER | DENSITY_VECTOR | HISTOGRAM | STATS_STREAM [ ,n ]
如果指定以上一个或多个选项,将根据指定的选项限制该语句返回的结果集。 如果没有指定任何选项,则返回所有统计信息。

STATS_STREAM 为 标识为仅供参考。不提供支持。不保证以后的兼容性。


实例:

dbcc show_statistics
(
'test',   --表的名称
'idd'     --列的名称
)


dbcc show_statistics
(
'test',   --表的名称
'_WA_Sys_00000001_117F9D94'     --统计信息的名称
) 

5、DBCC SHOWCONTIG

显示指定的表或视图的数据和索引的碎片信息。

后续版本的 Microsoft SQL Server 将删除该功能。请不要在新的开发工作中使用该功能,并尽快修改当前还在使用该功能的应用程序。

语法:

DBCC SHOWCONTIG 
[ ( 
    { table_name | table_id | view_name | view_id } 
    [ , index_name | index_id ] 
) ] 
    [ WITH 
        { 
         [ , [ ALL_INDEXES ] ] 
         [ , [ TABLERESULTS ] ] 
         [ , [ FAST ] ]
         [ , [ ALL_LEVELS ] ] 
         [ NO_INFOMSGS ]
         }
    ]

able_name | table_id | view_name | view_id
要检查碎片信息的表或视图。 如果未指定,则检查当前数据库中的所有表和索引视图。 
若要获得表或视图 ID,请使用 OBJECT_ID 函数。

index_name |index_id
要检查碎片信息的索引。 如果未指定,则该语句将处理指定表或视图的基本索引。 
若要获取索引 ID,请使用 sys.indexes 目录视图。

WITH
指定有关 DBCC 语句返回的信息类型的选项。

FAST
指定是否要对索引执行快速扫描和输出最少信息。 快速扫描不读取索引的叶级或数据级页。

ALL_INDEXES
显示指定表和视图的所有索引的结果,即使指定了特定索引也是如此。

TABLERESULTS
将结果显示为含附加信息的行集。

ALL_LEVELS
仅为保持向后兼容性而保留。 即使指定了 ALL_LEVELS,也只对索引叶级或表数据级进行处理。

NO_INFOMSGS
取消严重级别从 0 到 10 的所有信息性消息。

实例:

dbcc showcontig('test',0)
/*
DB