没有合适的资源?快使用搜索试试~ 我知道了~
DBC 数据库控制台命令C1
资源详情
资源评论
资源推荐
DBCC
Transact-SQL 编程语言提供 DBCC 语句作为 Microsoft®SQLServer2000 的数据库控制台命令。这
些语句对数据库的物理和逻辑一致性进行检查。许多 DBCC 语句能够对检测到的问题进行修复。
数据库控制台命令语句被分为以下类别。
语句分类 执行
维护语句 对数据库、索引或文件组进行维护的任务。
杂项语句 诸如启用行级锁定或从内存中删除动态链接库(DLL)等杂项任务。
状态语句 状态检查。
验证语句 对数据库、表、索引、目录、文件组、系统表或数据库页的分配进行的验证操作。
SQLServer2000 的 DBCC 语句使用输入参数和返回值。所有 DBCC 语句参数都可以接受 Unicode 和 DBCS
字面值。
使用 DBCC 结果集输出
许多 DBCC 命令可以产生表格格式的输出(使用 WITHTABLERESULTS 选项)。
该信息可装载到表中以便将来使用。以下显示一个示例脚本:
-- Create the table to accept the results
CREATE TABLE #tracestatus ( TraceFlag INT, Status INT )
-- Execute the command, putting the results in the table
INSERT INTO #tracestatus
EXEC ('DBCC TRACESTATUS (-1) WITH NO_INFOMSGS')
-- Display the results
SELECT * FROM #tracestatus
GO
维护语句
DBCC DBREINDEX
DBCC DBREPAIR
DBCC INDEXDEFRAG
DBCC SHRINKDATABASE
DBCC SHRINKFILE
DBCC UPDATEUSAGE
杂项语句
DBCC dllname (FREE)
DBCC HELP
DBCC PINTABLE
DBCC ROWLOCK
DBCC TRACEOFF
DBCC TRACEON
DBCC UNPINTABLE
状态语句
DBCC PINTABLE
DBCC OPENTRAN
DBCC OUTPUTBUFFER
DBCC PROCCACHE
DBCC SHOWCONTIG
DBCC SHOW_STATISTICS
DBCC SQLPERF
DBCC TRACESTATUS
DBCC USEROPTIONS
验证语句
DBCC CHECKALLOC
DBCC CHECKCATALOG
DBCC CHECKCONSTRAINTS
DBCC CHECKDB
DBCC CHECKFILEGROUP
DBCC CHECKIDENT
DBCC CHECKTABLE
DBCC NEWALLOC
DUMP TRANSACTION IQC WITH NO_LOG
DBCC SHRINKDATABASE(IQC)
Transact-SQL 参考
DBCC SHRINKDATABASE
收缩指定数据库中的数据文件大小
语法
DBCC SHRINKDATABASE
( database_name [ , target_percent ]
[ , { NOTRUNCATE | TRUNCATEONLY } ] )
参数
database_name
是要收缩的数据库名称。数据库名称必须符合标识符的规则。有关更多信息,请参见使用标识符。
target_percent
是数据库收缩后的数据库文件中所要的剩余可用空间百分比。
NOTRUNCATE
导致在数据库文件中保留所释放的文件空间。如果未指定,将所释放的文件空间释放给操作系统。
TRUNCATEONLY
导致将数据文件中的任何未使用的空间释放给操作系统,并将文件收缩到上一次所分配的大小,从而
减少文件大小,而不移动任何数据。不试图重新定位未分配页的行。使用 TRUNCATEONLY 时,忽略
target_percentis。 注释
Microsoft SQL Server 可收缩:
特定数据库的所有数据和日志文件。执行 DBCC SHRINKDATABASE。 一次一个特定数据库中的数据或日
志文件。执行 DBCC SHRINKFILE。 DBCC SHRINKDATABASE 以每个文件为单位对数据文件进行收缩。然而,
DBCC SHRINKDATABASE 在对日志文件进行收缩时,看起来好像所有的日志文件都存在于一个连续的日志池
中。
假设名为 mydb 的数据库有两个数据文件和两个日志文件。这些数据文件和日志文件大小都为 10 MB。
第一个数据文件包含 6 MB 数据。
对于每个文件,SQL Server 计算目标大小,即要收缩文件到的大小。当用 target_percent 指定
DBCC SHRINKDATABASE 时,SQL Server 计算的目标大小是收缩后文件中的 target_percent 可用空间大小。
例如,如果指定按 target_percent 为 25 收缩 mydb。SQL Server 计算的该文件的目标大小为 8 MB(6 MB 数
据加上 2 MB 可用空间)。因此,SQL Server 将任何数据从数据文件的最后 2 MB 中移动到数据文件前 8 MB 的
可用空间中,然后对该文件进行收缩。
假设 mydb 的第一个数据文件包含 7 MB 的数据。若将 target_percent 指定为 30,则允许将该数据文件
收缩到所要的可用百分比 30。然而,若将 target_percent 指定为 40,就不会收缩该数据文件,因为
SQL Server 不能将文件收缩到比数据当前占有的空间还小的程度。也可以从另一个角度考虑这个问题:
40% 要求的可用空间 + 70% 完整的数据文件(10 MB 中的 7 MB)大于 100%。因为所要求的可用百分比加上数
据文件占用的当前百分比大于 100%(多出 10%),所以任何大于 30 的 target_size 都不会收缩该数据文件。
对于日志文件,SQL Server 使用 target_percent 以对整个日志的目标大小进行计算;因此,
target_percent 是收缩操作后日志中的可用空间大小。之后,整个日志的目标大小可以解释为每个日志文
件的目标大小。DBCC SHRINKDATABASE 尝试立即将每个物理日志文件收缩到其目标大小。如果虚拟日志中
的所有逻辑日志部分都没有超出日志文件的目标大小,则该文件将成功截断,DBCC
SHRINKDATABASE 完成且不显示任何消息。然而,如果虚拟日志中的逻辑日志部分超出其目标大小,则
SQL Server 释放尽可能多的空间并发出一条消息。该消息告诉您需要执行什么操作来移动文件末尾超出虚
拟日志的逻辑日志部分。执行完该操作后,可以重新发出 DBCC SHRINKDATABASE 命令以释放剩余的空间。
有关收缩事务日志的更多信息,请参见收缩事务日志。
因为日志文件只能收缩到虚拟日志文件边界,所以不可能将日志文件收缩到比虚拟日志文件更小(即
使现在没有使用该文件)。例如,可以将数据库的 1 GB 日志文件收缩到只有 128 MB。有关截断的更多信息,
请参见截断事务日志。有关确定虚拟日志文件大小的更多信息,请参见虚拟日志文件。
由 DBCC SHRINKDATABASE 计算的数据和日志文件的目标大小始终不小于文件的最小大小。文件的最小
大小是在文件最初创建时指定的大小,或是上一次用更改文件大小的操作(如用带有 MODIFY FILE 选项的
ALTER DATABASE 或 DBCC SHRINKFILE)显式设置的大小。例如,如果在执行 CREATE DATABASE 时,将 mydb
的所有数据和日志文件大小都指定为 10 MB,则每个文件的最小大小都为 10 MB。DBCC SHRINKDATABASE 不能
收缩任何小于 10 MB 的文件。如果使用带有 MODIFY FILE 选项的 ALTER DATABASE 将其中的一个文件显示增
长到 20 MB,则该文件新的最小大小为 20 MB。若要将文件大小收缩到小于其最小大小,请使用
DBCC SHRINKFILE 并指定新大小。执行 DBCC SHRINKFILE 会将文件的最小大小更改为所指定的新大小。
在使用数据文件时,DBCC SHRINKDATABASE 有 NOTRUNCATE 和 TRUNCATEONLY 选项。如果为日志文件指定
这两个选项,则将忽略这两个选项。DBCC SHRINKDATABASE 不带任何选项等价于 DBCC SHRINKDATABASE 带有
NOTRUNCATE 选项,后面还要跟着带有 TRUNCATEONLY 选项的 DBCC SHRINKDATABASE。
不论是否指定 target_percent,NOTRUNCATE 选项都执行 DBCC SHRINKDATABASE 的实际数据移动操作
(包括将分配页从文件的末尾移动到文件前面的未分配页)。然而,文件末尾的可用空间不会返回给操作
系统,文件的物理大小也不会更改。因此,如果指定 NOTRUNCATE 选项,数据文件好像没有收缩。例如,
假设再次使用 mydb 数据库,该 mydb 有两个数据文件和两个日志文件。第二个数据文件和第二个日志文件
的大小都为 10 MB。执行 DBCC SHRINKDATABASE mydb NOTRUNCATE 时,Microsoft SQL Server 将数据从数据文
件的后面几页移动到前面几页中。而文件的大小仍然为 10 MB。
TRUNCATEONLY 选项将文件末尾的所有可用空间收回给操作系统。然而,TRUNCATEONLY 在文件内不执
行任何页移动操作。指定的文件只能收缩到上一次分配的大小。如果使用 TRUNCATEONLY 选项指定
target_percent,则忽略后者。
所生成的数据库不能比 model 数据库更小。
要收缩的数据库不必在单用户模式下;其他的用户仍可以在数据库收缩时对其进行工作。这也包括系
统数据库。 结果集 下表描述结果集内的列。 列名 描述 DbId SQL Server 试图收缩的文件的数据库标识号。
FileId SQL Server 试图收缩的文件的文件标识号。 CurrentSize 文件当前占用的 8KB 页数。
MinimumSize 文件可以占用的最小 8KB 页数。这与文件的最小大小或最初创建时的大小相对应。
UsedPages 文件当前使用的 8KB 页数。
EstimatedPages SQL Server 估计文件能够收缩到的 8KB 页数。 说明 SQL Server 并不显示未收缩的
文件的行。 权限 DBCC SHRINKDATABASE 权限默认授予 sysadmin 固定服务器角色或 db_owner 固定数据库角
色的成员且不可转让。 示例 下例将 UserDB 用户数据库中的文件减小,以使 UserDB 中的文件有 10% 的可用
空间。
剩余10页未读,继续阅读
乐居买房
- 粉丝: 20
- 资源: 311
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 最通俗易懂的 MongoDB 非结构化文档存储数据库教程.zip
- 以mongodb为数据库的订单物流小项目.zip
- 腾讯云-mongodb数据库, 项目部署.zip
- 腾讯 APIJSON 的 MongoDB 数据库插件.zip
- 理解非关系型数据库和关系型数据库的区别.zip
- 操作简单的Mongodb网页web管理工具,基于Spring Boot2.0支持mongodb集群.zip
- tms-mongodb-web,提供访问mongodb数据的REST API和可灵活扩展的mongodb web 客户端.zip
- SpringBoot整合mongodb学习MongoTemplate和MongoRepository两种方式CRUD使用.zip
- SpringBoot整合MongoDB实现对数据库的CRUD小demo.zip
- Python操作MongoDB数据库的基本一些操作 .zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0