SQL Server数据库管理员必备的DBCC命令(一)

本文介绍了DBCC命令集,包括用于数据库维护(如索引碎片整理、表清理等)和验证(如检查磁盘空间分配、文件组完整性等)的各种实用命令。这些命令对于确保数据库的高效运行和数据一致性至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、了解DBCC

DBCC(database consistenecy checker,简称dbcc) 是一个实用命令集,用来检查数据库的逻辑一致性及物理一致性。

数据库控制台命令语句可分为以下类别:

维护: 对数据库、索引或文件组进行维护的任务。

杂项: 杂项任务,如启用跟踪标志或从内存中删除 DLL。

信息: 收集并显示各种类型信息的任务。

验证: 对数据库、表、索引、目录、文件组或数据库页的分配进行的验证操作

二、DBBCC维护语句:对数据库、索引或文件组进行维护的任务

DBCC CLEANTABLE。回收删除的可变长度列和文本列的空间。

DBCC CLEANTABLE

(

{ ’database_name’ | database_id | 0 }

,{ ’table_name’ | table_id | ’view_name’ | view_id }

[ , batch_size ]

)

[ WITH NO_INFOMSGS ]

DBCC INDEXDEFRAG。指定表或视图的索引碎片整理。

DBCC INDEXDEFRAG

(

{ ’database_name’ | database_id | 0 }

, { ’table_name’ | table_id | ’view_name’ | view_id }

, { ’index_name’ | index_id }

, { partition_number | 0 }

)

[ WITH NO_INFOMSGS ]

DBCC DBREINDEX。 对指定数据库中的表重新生成一个或多个索引。

DBCC DBREINDEX

(

’table_name’

[ , ’index_name’ [ , fillfactor ] ]

)

[ WITH NO_INFOMSGS ]

DBCC SHRINKDATABASE。 收缩指定数据库中的数据文件大小。

DBCC SHRINKDATABASE

( ’database_name’ | database_id | 0

[ ,target_percent ]

[ , { NOtruncate | truncateONLY } ]

)

[ WITH NO_INFOMSGS ]

DBCC dropCLEANBUFFERS。 从缓冲池中删除所有清除缓冲区。DBCC dropCLEANBUFFERS [ WITH NO_INFOMSGS ]

DBCC SHRINKFILE。 收缩相关数据库的指定数据文件或日志文件大小。

DBCC SHRINKFILE

(

{ ’file_name’ | file_id }

{ [ , EMPTYFILE ]

| [ [ , target_size ] [ , { NOtruncate | truncateONLY } ] ]

}

)

[ WITH NO_INFOMSGS ]

  DBCC FREEPROCCACHE。 从过程缓存中删除所有元素。DBCC FREEPROCCACHE [ WITH NO_INFOMSGS ]

  DBCC updateUSAGE 报告目录视图中的页数和行数错误并进行更正。

DBCC updateUSAGE

( { ’database_name’ | database_id | 0 }

[ , { ’table_name’ | table_id | ’view_name’ | view_id }

[ , { ’index_name’ | index_id } ] ]

) [ WITH [ NO_INFOMSGS ] [ , ] [ count_ROWS ]

]

三、DBBCC验证语句:对数据库、表、索引、目录、文件组或数据库页的分配进行的验证操作

DBCC CHECKALLOC。检查指定数据库的磁盘空间分配结构的一致性。

DBCC CHECKALLOC

[

(

[ ’database_name’ | database_id | 0 ]

[ , NOINDEX

|

{ REPAIR_ALLOW_DATA_LOSS

| REPAIR_FAST

| REPAIR_REBUILD

} ]

)

]

[ WITH { [ ALL_ERRORMSGS ]

[ , NO_INFOMSGS ]

[ , TABLOCK ]

[ , ESTIMATEONLY ]

}

]

DBCC CHECKFILEGROUP。检查当前数据库中指定文件组中的所有表的分配和结构完整性。

DBCC CHECKFILEGROUP

[

(

[ { ’filegroup_name’ | filegroup_id | 0 } ]

[ , NOINDEX ]

)

]

[ WITH

{

[ ALL_ERRORMSGS ]

[ NO_INFOMSGS ] ]

[ , [ TABLOCK ] ]

[ , [ ESTIMATEONLY ] ]

}

]

DBCC CHECKCATALOG。检查指定数据库内的目录一致性。数据库必须联机。

DBCC CHECKCATALOG

[

(

’database_name’ | database_id | 0

)

]

[ WITH NO_INFOMSGS ]

DBCC CHECKIDENT。 检查指定表的当前标识值,如有必要,则更改标识值。

DBCC CHECKIDENT

(

’table_name’

[ , {

NORESEED | { RESEED [ , new_reseed_value ] }

}

]

)

[ WITH NO_INFOMSGS ]

  DBCC CHECKCONSTRAINTS。 检查当前数据库中指定表上的指定约束或所有约束的完整性。

DBCC CHECKCONSTRAINTS

[

(

’table_name’ | table_id | ’constraint_name’ | constraint_id

)

]

[ WITH

{ ALL_CONSTRAINTS | ALL_ERRORMSGS } [ , NO_INFOMSGS ]

]

DBCC CHECKTABLE。检查组成表或索引视图的所有页和结构的完整性。

DBCC CHECKTABLE

(

’table_name’ | ’view_name’

[ , NOINDEX

| index_id

| { REPAIR_ALLOW_DATA_LOSS

| REPAIR_FAST

| REPAIR_REBUILD }

]

)

[ WITH

{ [ ALL_ERRORMSGS ]

[ , [ NO_INFOMSGS ] ]

[ , [ TABLOCK ] ]

[ , [ ESTIMATEONLY ] ]

[ , [ PHYSICAL_ONLY ] ]

}

]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值