DBCC收缩数据库

简介: 原文 http://www.cnblogs.com/sunshineflower/archive/2013/04/17/3026233.html   DBCC是SQL Server的数据库控制台命令。

原文 http://www.cnblogs.com/sunshineflower/archive/2013/04/17/3026233.html

  DBCC是SQL Server的数据库控制台命令。它可以提供多种命令,用于实现数据库维护、验证、获取信息等功能。

用法一:使用DBCC SHRINKDATABASE语句收缩数据库
     使用DBCC SHRINKDATABASE语句可以收缩指定数据库中的数据文件和日志文件的大小,其基本语法结构如下:

  基本语法:
  DBCC SHRINKDATABASE(数据库名|数据库ID|0,目标百分比,NOTRUNCATE|TRUNCATEONLY)


  在DBCC SHRINKDATABASE后面需要指定要收缩的数据库名称或数据库ID。如果使用0,则收缩当前数据库。

  参数“目标百分比”,可选,只对收缩数据文件有效。使用此参数后,文件末尾已分配的页移动到文件前面未分

配的页。文件末尾的可用空间不会返回给操作系统,文件的物理大小也不会改变。
参数“TRUNCATEONLY”,可选,也只对收缩数据文件有效。使用此参数后,文件末尾的所有可用空间都会释放给

操作系统,但不在文件内部执行页移动操作。因此,使用此参数数据文件只能收缩最近分配的区。

例如,收缩数据库db_test,剩余可用空间为10%,代码如下:

DBCC SHRINKDATABASE(db_test,10)

 

  需要注意的是,数据库空间并不是越小越好。因为大多数数据库都需要预留一部分空间,以供日常操作使用。因

此,在收缩数据库时,如果数据库文件的大小不变或者反而变大了,则说明收缩空间是常规操作所需要的,这是

,就不需要收缩数据库了。

用法二:使用DBCC SHRINKDATABASE语句收缩指定的数据库文件

  基本语法:
  DBCC SHRINKFILE(文件名|文件ID|0,EMPTYFILE,收缩后文件的大小,NOTRUNCATE|TRUNCATEONLY)

  参数文件名,必填,指要收缩的数据库文件的逻辑名称
  参数EMPTYFILE,可选,数据库引擎将当前文件的所有数据都迁移到同一文件组中的其他文件,然后可以使用

ALTER DATABASE语句来删除该文件。
  参数"收缩后文件的大小"用整数表示,单位为MB。如果未指定此参数,则文件减少到默认的文件大小。
  参数“TRUNCATEONLY”,可选,也只对收缩数据文件有效。使用此参数后,文件末尾的所有可用空间都会释放给

操作系统,但不在文件内部执行页移动操作。因此,使用此参数数据文件只能收缩最近分配的区。

例如:将数据库db_test中的db_test1文件收缩的20MB,代码如下:

DBCC SHRINKFILE(db_test1,20);

 

例如:使用EMPTYFILE关键字清空数据库文件。
将数据库db_test中的db_test1文件清空,然后使用ALTER DATABASE语句来删除该文件,代码如下:

DBCC SHRINKFILE(db_test1,EMPTYFILE)
GO

ALTER DATABASE db_test1 REMOVE FILE dbtest1

 

例如:有时候日志文件会变得很大,可以使用DBCC SHRINKFILE来收缩日志文件,代码如下:

DBCC SHRINKFILE (db_test_Log, 1);
目录
相关文章
|
SQL 数据库
MS SQL巡检系列——检查数据库上一次DBCC CHECKDB的时间
DBCC CHECKDB检查指定数据库中的所有对象的逻辑和物理完整性,具体请参考MSDN文档。我们必须定期对数据库做完整性检查(DBCC CHECKDB),以便能及时发现一些数据库损坏(Corruption)的情况。
1189 0
|
SQL 数据库 BI
MS SQL巡检系列——检查数据库上一次DBCC CHECKDB的时间
原文:MS SQL巡检系列——检查数据库上一次DBCC CHECKDB的时间 DBCC CHECKDB检查指定数据库中的所有对象的逻辑和物理完整性,具体请参考MSDN文档。我们必须定期对数据库做完整性检查(DBCC CHECKDB),以便能及时发现一些数据库损坏(Corruption)的情况。
972 0
|
数据库 索引
通过DBCC整理Sqlserver数据库表索引碎片
昨天检查了一张效率极慢的表,两年多没有维护,逻辑扫描碎片高达99.81%,于是开始对这个表进行重点跟踪和记录日志。今天用DBCC SHOWCONTIG WITH TABLERESULTS 命令检查了一下所有表的概况,然后参照着MSDN对字段的说明,发现问题比较严重。
1196 0
|
SQL 数据库 数据安全/隐私保护
对于超大型SQL SERVER数据库执行DBCC操作
原文: 对于超大型SQL SERVER数据库执行DBCC操作 对于数据库维护,主要使用DBCC CHECKDB来实现,以下是对大型数据库的使用说明,小型数据库一般直接使用就可以了: 1、2008(2005我不确认)已经实现了快照检查,也就是当你执行DBCC时,DBMS会先快照出一个数据库,然后在快照上执行检查,这样对原来的库不造成锁的影响。
678 0
|
7天前
|
关系型数据库 MySQL 分布式数据库
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
39 2
|
23天前
|
SQL 数据可视化 关系型数据库
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
105 0
|
23天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
23天前
|
关系型数据库 MySQL 数据库
轻松入门MySQL:精准查询,巧用WHERE与HAVING,数据库查询如虎添翼(7)
轻松入门MySQL:精准查询,巧用WHERE与HAVING,数据库查询如虎添翼(7)

热门文章

最新文章