CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

请问"收缩数据库"的作用是什么????????????????????????????????

楼主yxfs()2004-05-03 14:46:56 在 MS-SQL Server / 基础类 提问

请问"收缩数据库"的作用是什么????????????????????????????????  
   
   
  在sql   server   中有   收缩数据库   ,自动收缩数据库   功能   ,   它们的作用是什么??  
       
  为什么要收缩数据库?? 问题点数:20、回复次数:3Top

1 楼zjcxc(邹建)回复于 2004-05-03 14:49:22 得分 10

收缩数据库    
  Microsoft®   SQL   Server™   2000   允许收缩数据库中的每个文件以删除未使用的页。数据和事务日志文件都可以收缩。数据库文件可以作为组或单独地进行手工收缩。数据库也可设置为按给定的时间间隔自动收缩。该活动在后台进行,并且不影响数据库内的用户活动。  
   
  当使用   ALTER   DATABASE   AUTO_SHRINK   选项(或   sp_dboption   系统存储过程)将数据库设置为自动收缩,且数据库中有足够的可用空间时,则会发生收缩。但是,如果不能配置要删除的可用空间的百分比,则将删除尽可能多的可用空间。若要配置将删除的可用空间量,例如只删除数据库中当前可用空间的   50%,请使用SQL   Server   企业管理器内的"属性"对话框进行数据库收缩。  
   
  不能将整个数据库收缩到比其原始大小还要小。因此,如果数据库创建时的大小为   10   MB,后来增长到   100   MB,则该数据库最小能够收缩到   10   MB(假定已经删除该数据库中所有数据)。  
   
  但是,使用   DBCC   SHRINKFILE   语句,可以将单个数据库文件收缩到比其初始创建大小还要小。必须分别收缩每个文件,而不要试图收缩整个数据库。  
   
  事务日志文件可在固定的边界内收缩。虚拟日志的大小决定可能减小的大小。因此,不能将日志文件收缩到比虚拟日志文件还小。另外,日志文件可以按与虚拟日志文件的大小相等的增量收缩。例如,一个初始大小为   1   GB   的较大事务日志文件可以包括五个虚拟日志文件(每个文件大小为   200   MB)。收缩事务日志文件将删除未使用的虚拟日志文件,但会留下至少一个虚拟日志文件。因为此示例中的每个虚拟日志文件都是   200   MB,所以事务日志最小只能收缩到   200   MB,且每次只能以   200   MB的大小收缩。若要让事务日志文件收缩得更小,可以创建一个更小的事务日志,并允许它自动增长,而不要创建一个较大的事务日志文件。  
   
  在   SQL   Server   2000   中,DBCC   SHRINKDATABASE   或   DBCC   SHRINKFILE   操作试图立即将事务日志文件收缩到所要求的大小(以四舍五入的值为准)。在收缩文件之前应截断日志文件,以减小逻辑日志的大小并将其标记为不包含逻辑日志任何部分的不活动的虚拟日志。有关更多信息,请参见收缩事务日志。    
   
   
   
  说明     不可能在备份数据库或事务日志时收缩数据库或事务日志。反之,也不可能在收缩数据库或事务日志时创建数据库或事务日志备份。  
   
  Top

2 楼zjcxc(邹建)回复于 2004-05-03 14:51:29 得分 10

自动收缩数据库  
   
  SQL   Server   2000   自动收缩有大量可用空间的数据库。该进程仅适用于那些   autoshrink   选项设置为   true   的数据库。服务器定期检查每个数据库中的空间使用情况。如果发现数据库中有大量闲置空间,而且它的   autoshrink   选项设置为   true,SQL   Server   就缩小该数据库中的文件大小。也可以使用   SQL   Server   企业管理器或   DBCC   SHRINKDATABASE   和   DBCC   SHRINKFILE   语句,手工收缩数据库中的文件。  
   
  文件始终从末端开始收缩。例如,如果有个   5   GB   的文件并将   DBCC   SHRINKDB   语句中的   target_size   指定为   4GB,则   SQL   Server   将从文件的最后一个   1   GB   开始释放尽可能多的空间。如果文件中被释放的部分包含使用过的页,则   SQL   Server   首先将这些页重新定位到保留的部分。只能将数据库收缩到没有剩余的可用空间为止。例如,某个   5GB   的数据库有   4   GB   的数据并且   DBCC   SHRINKDATABASE   语句的   target_size   被指定为   3   GB,则只释放   1   GB。  
   
  如果   DBCC   SHRINKDATABASE   或   DBCC   SHRINKFILE   语句无法收回日志文件中的所有空间,该语句将发出信息,指示必须执行什么操作以释放更多符合条件的空间。有关收缩日志文件的更多信息,请参见收缩事务日志。  
   
  Top

3 楼fsqman(q)回复于 2004-05-06 17:12:43 得分 0

能不能简单点,易明点Top

相关问题

  • 收缩数据库日志为什么不行?????在线等待!
  • SQL-SERVER中“分离数据库”有什么作用?
  • 请教:SQL Server中的master数据库有什么作用
  • 数据库的索引有些什么作用?
  • 压缩和修复数据库有什么作用?
  • 请教:关于收缩数据库
  • 如何收缩数据库日志
  • 求救Oracle数据库收缩??
  • 请问在数据库属性中设置自动收缩有什么用?什么时候会自动收缩?收缩哪些内容?
  • 为什么Create table [xx](a boolean not null)不可以在对Access数据库起作用???

关键词

  • sql server 2000
  • 数据库
  • 文件
  • 语句
  • 虚拟
  • 选项
  • 数据
  • 信息
  • 日志
  • 收缩

得分解答快速导航

  • 帖主:yxfs
  • zjcxc
  • zjcxc

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo