如何释放SQL表中己分配但又未使用的空间?

windows2000server+Sp4SQLServer2000+Sp4企业版,英文有若干数据库,其中数据库A中有几个表,记录不是很多,没有什么索引,但是使用sp_s... windows 2000server+Sp4
SQL Server2000+Sp4企业版,英文
有若干数据库,其中数据库A中有几个表,记录不是很多,没有什么索引,但是使用sp_spaceusd来查看,这几个表占用了大量的unused space,给备份带来了很大的麻烦!正常情况下,数据库A应该只有6GB左右,但由于那几个表的缘故,数据库A一下子就到了30GB了。将这几个表删除并创建同名的表(结构相同,索引/约束等什么都相同),一开始还算正常(删除那几个表后数据库显示大小为6GB),没过几天数据库又到了30GB。
Auto shrink设定为True,DBCC Shrinkfile/Shrinkdatabase均无法释放出被表占用的unused space。
哪位碰到过这样的问题,能不能解决这样的问题?
展开
 我来答
匿名用户
2013-06-27
展开全部
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 语句无法收回日志文件中的所有空间,该语句将发出信息,指示必须执行什么操作以释放更多符合条件的空间。收缩事务日志在下列情况下,日志文件的物理大小将减少: 执行 DBCC SHRINKDATABASE 语句时。执行引用日志文件的 DBCC SHRINKFILE 语句时。自动收缩操作发生时。 日志收缩操作依赖于最初的日志截断操作。日志截断操作不减小物理日志文件的大小,但减小逻辑日志的大小,并将没有容纳逻辑日志任何部分的虚拟日志标记为不活动。日志收缩操作会删除足够多的不活动虚拟日志,将日志文件减小到要求的大小。减小大小的单位是一个虚拟日志文件。例如,如果有个 600 MB 的日志文件被分成了 6 个 100 MB 的虚拟日志,则该日志文件的大小只能按 100 MB 递减。比如,文件可以减小到 500 MB 或 400 MB,但不能减小到 433 MB 或 525 MB。不能释放容纳逻辑日志部分的虚拟日志。如果某个日志文件中的所有虚拟日志都容纳了逻辑日志部分,则不能收缩该文件,直到截断操作在物理日志的末端将一个或更多的虚拟日志标记为不活动。当收缩任何文件时,必须从文件的末端开始释放空间。当收缩事务日志文件时,从文件的末端开始释放足够的虚拟日志以将日志减小到用户所要求的大小。用户指定的 target_size 四舍五入为下一个最大的虚拟日志边界大小。例如,如果用户为包含 6 个 100 MB 虚拟日志文件的 600 MB 文件指定 325 MB 的 target_size,则删除最后两个虚拟日志文件,因此新的文件大小为 400 MB。在 SQL Server 2000 中,DBCC SHRINKDATABASE 或 DBCC SHRINKFILE 操作试图立即将物理日志文件收缩到所要求的大小(以四舍五入的值为准): 如果虚拟日志中的逻辑日志部分没有超出 target_size 标记,则释放 target_size 标记之后的虚拟日志,并且成功完成 DBCC 语句,不出现任何信息。如果虚拟日志中的逻辑日志部分超出 target_size 标记,则 SQL Server 2000 释放尽可能多的空间并发出一条信息。该信息告诉您需要执行什么操作以获得文件末端超出虚拟日志的逻辑日志部分。执行完该操作后,可以重新发出 DBCC 语句以释放剩余的空间。
匿名用户
2013-06-27
展开全部
是的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式