DBCC SHRINKFILE有时收缩文件不成功的原因

DBCC SHRINKFILE收缩的是区一级的数据,会将没在使用中的区进行删除。但会有许多空页分布在区内,造成区在使用,故这样的区得不到删除。
若想删除,方式是:重建聚集索引,整理页数据。
注:页是SQL Server数据存储的最基本单位,页的大小是8KB,
每区由8个页组成,这意味着SQL Server数据库中每MB有128页,16个区。

时间: 2024-12-19 19:34:57

DBCC SHRINKFILE有时收缩文件不成功的原因的相关文章

《SQL Server企业级平台管理实践》读书笔记——SQL Server中收缩数据库不好用的原因

原文:<SQL Server企业级平台管理实践>读书笔记--SQL Server中收缩数据库不好用的原因 数据库管理员有时候需要控制文件的大小,可能选择收缩文件,或者把某些数据文件情况以便从数据库里删除. 这时候我们就要使用到DBCC SHRINKFILE命令,此命令的脚本为: DBCC SHRINKFILE ( { file_name | file_id } { [ , EMPTYFILE ] | [ [ , target_size ] [ , { NOTRUNCATE | TRUNCATE

收缩文件 — DBCC SHRINKFILE

–数据库日志文件增长的很快,每次手工收缩不能及时,用下面的方法建立一job可以定时运行 USE brm_lvjian –设置数据库恢复模式为简单ALTER DATABASE BRM_LVJIANSET RECOVERY SIMPLE –收缩日志到1MDBCC SHRINKFILE (‘BRM_LVJIAN_Log’, 1); –设置数据库恢复模式为完整ALTER DATABASE BRM_LVJIANSET RECOVERY FULL

收缩数据库 DBCC SHRINKFILE

数据库中的每个文件都可以通过删除未使用的页的方法来减小.尽管数据库引擎会有效地重新使用空间,但某个文件多次出现无需原来大小的情况后,收缩文件就变得很有必要了.数据和事务日志文件都可以减小(收缩).可以成组或单独地手动收缩数据库文件,也可以设置数据库,使其按照指定的间隔自动收缩. 文件始终从末尾开始收缩.例如,如果有个 5 GB 的文件,并且在dbcc shrinkfile 语句中将 target_size 指定为 4 GB,则数据库引擎将从文件的最后一个 1 GB 开始释放尽可能多的空间.如果文

由于Replication,DBCC Shrink不能收缩Log File

使用Backup创建测试环境之后,发现testdb的Log File过大,达到400GB,由于测试环境实际上不需要这么大的Log Space,占用400GB的Disk Space实在浪费Disk Resource,于是使用DBCC Shrink收缩Log File: dbcc shrinkfile(testdb_log_5,10240,notruncate) dbcc shrinkfile(testdb_log_5,10240,truncateonly) 命名执行完成之后,发现还有300多GB,

SQL Server dbcc shrinkfile 不起作用

方法 1.重建聚集索引. 方法 2.重建堆表. ----------------------------------------------------------------------------------------------------------------------------------------------------------------- 原理说明.dbcc shrinkfile 的操作单位是区(extent 也有的书上说成是扩展),数据存在数据页中,8 个数据页的

VS2005(vs2008,vs2010)使用map文件查找程序崩溃原因

VS 2005使用map文件查找程序崩溃原因 一般程序崩溃可以通过debug,找到程序在那一行代码崩溃了,最近编一个多线程的程序,都不知道在那发生错误,多线程并发,又不好单行调试,终于找到一个比较好的方法来找原因,通过生成map文件,由于2005取消map文件生成行号信息(vc6.0下是可以生成行号信息的,不知道microsoft怎么想的,在2005上取消了),只能定位在那个函数发生崩溃.这里可以通过生成cod文件,即机器码这一文件,具体定位在那一行崩溃. 首先配置vc2005生成map文件和c

微信开发回复消息收不到的最大罪魁祸首,微信公众账号为什么回复消息不成功的原因解决办法

上一篇文章讲到如何配置微信开发,以及.NET平台使用MVC做一个小DEMO的流程,还有常见收不到消息的问题,本篇文章讲的是一个很容易让人忽略但又是很重要的问题导致用户收不到响应的消息原因. 上一篇文章链接:[C#开发微信.NET平台MVC微信开发 发送普通消息Demo以及收不到消息的问题] (如果你是通过搜索引擎进来的建议你看下上篇文章,说不定就解决你的问题了) 这个问题出在代码 首先我们的C#代码是这么写的: 1 //接收/回复 消息接口 2 [HttpPost] 3 public Actio

VS2005(vs2008,vs2010 VS2012)使用map文件查找程序崩溃原因

转载http://blog.csdn.net/luxiaoyu_sdc/article/details/6458872 一般程序崩溃可以通过debug,找到程序在那一行代码崩溃了,最近编一个多线程的程序,都不知道在那发生错误,多线程并发,又不好单行调试,终于找到一个比较好的方法来找原因,通过生成map文件,由于2005取消map文件生成行号信息(vc6.0下是可以生成行号信息的,不知道microsoft怎么想的,在2005上取消了),只能定位在那个函数发生崩溃.这里可以通过生成cod文件,即机器

关于java中文件删除失败的原因分析

最近在做一个文档管理系统,结果在删除文件的时候,一直提示我文件删除失败,当然啦,是我在jsp里面写的一个alert("文件删除失败!"),然后我就纳闷儿了,为什么删不掉呢?后来打开windows,找到相应的文件,用管理员权限去删除也删不掉!然后就给我报错,java TM...正在使用这个文件,我顿时就凌乱了,因为我使用的是MyEcplise,所以我又回去检查代码,后来终于找到元凶了,是一个警告导致的错误!警告啊!下面我贴上代码: /** * 获取单个文件的大小 * @param fil