sql server 数据库收缩
1. 数据库的相关属性
在MS中创建数据库时会为数据库分配初始的大小(如下图:数据库和日志两个文件),随着数据库的使用文件会逐渐增大。数据库文件大小的增加有两种方式:
自动增长:在自动增长中可以设置每次的增长量,以及最大增长的文件大小。
手动增长:取消“启用自动增长”则为手动增长,这就需要DBA经常观测数据库的运行情况,及时更改数据库的小。手动增长比较麻烦,一般都设为自动增长。
2. 为何数据库需要收缩?
要明白为何数据库需要收缩,首先需要理解两个概念:
为数据库分配的空间:如上图初始时为“数据库文件”分配的空间为3MB,为“日志文件”分配的空间未1MB。
数据库实际使用的空间:以上图为例,由于数据是刚创建的,里面没有任何用户数据,因此它实际使用的空间很小(不足1MB)。
由此可以理解为:分配空间>=使用空间。在实际使用的过程中可能会出现分配空间为100MB,而使用空间仅为20MB,这就造成了磁盘有80MB的浪费,为了消除这种浪费就需要使用“数据收缩”功能。
3. 如何收缩数据库?
3.1 通过设置数据库选项AUTO_SHRINK为True,即让数据库自动收缩,如下图:
3.2 收缩数据库文件
右键数据库—任务—收缩—文件,如下图:
文件类型:选择所要收缩的是“数据库文件”还是“日志文件”。
当前分配的空间:数据库为该文件分配的大小,就是在磁盘上看到的文件大小。
可用空间:就是“当前分配的空间” 减去“实际使用的空间”。
收缩操作:
① 释放未使用的空间:将该文件中未使用的空间释放出来,数据在文件中不移动;
② 在释放未使用的空间前重新组织页:此选项可以将文件收缩到“指定大小”,并将数据重新组织。其最小值为数据库“实际使用的空间”;
③ 通过将数据迁移到同一文件组的其他文件来清空文件:不解释,很少用。
上述操作也可以使用T-SQL替代:
DBCC ShrinkFile(‘数据库名’, targetsize); /* 收缩数据库文件 */ DBCC ShrinkFile(‘数据库名_log’, targetsize); /* 收缩日志文件 */
Targetsize:单位为兆,必须为整数,DBCC SHRINKFILE 尝试将文件收缩到指定大小。
DBCC SHRINKFILE 不会将文件收缩到小于“实际使用的空间”大小,例如“分配空间”为10M,“实际使用空间”为6M,当制定targetsize为1时,则将该文件收缩到6M,不会将文件收缩到1M。
3.3 收缩数据库
即同时收缩“数据库文件”和“日志文件”,右键数据库—任务—收缩—数据库
收缩后的最大可用空间:设为0,即收缩所有的可用空间。
也可以使用T-SQL完成数据库的收缩:
DBCC SHRINKDATABASE(数据库名,百分比)
百分比:即“收缩后文件中的最大可用空间”,取值范围“大于等于0, 小于100%”,实际使用中设为0即可。
相关文章
- C# 基于 SQL Server 数据库的登录注册
- SQL Server 数据库限制单用户使用和解除单用户使用
- 【Sql Server】还原BAK数据库时出现“尚未备份数据库的日志尾部”错误(已解决)
- Sql Server 2005/2008中把一个数据库中的表完整复制到另一个数据库!(已解决)
- 数据库(原SQL Server 我是mysql )对S表、P表、J表、SPJ ---- 第一篇~
- 【Docker】安装Presto连接Hive、mysql、oracle、postgresql、SQL server等7种类型数据库
- SQL Server 数据库性能优化
- SQL Server-数据库中强varchar类型使用sum函数计算总和
- SQL SERVER 设置自动备份和删除旧的数据库文件
- 《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——1.4 浏览SQL Server PowerShell层次结构
- 《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.21 使用bcp实施批量导入
- 《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》导读
- 数据库实验二(SQL Server & SSMS)
- sql server 小技巧(3) SQL Server 2012 数据库完整导出到SQL Azure (包括数据)
- SQL Server SQL性能优化之--数据库在“简单”参数化模式下,自动参数化SQL带来的问题
- 一段后台C#查询SQL Server数据库代码
- SQL Server数据库监控 - 如何告警
- SQL Server 计算机间移动数据库
- SQL Server数据库损坏、检测以及简单的修复办法【转】
- (4.13)SQL Server profile使用、数据库优化引擎顾问使用
- (3.6)sql server存储引擎--文件与数据页及数据行的结构
- 修改sql server实例、数据库、表、字段的排序规则
- 关于SQL Server服务占用内存过大---限制数据库内存使用
- SQL server数据库备份与还原语句