SQL Server未使用,但已分配表空间

SQL Server未使用,但已分配表空间

SQL Server unused, but allocated table space

我有越来越大的ms sql数据库。 经检查,我发现某些表中有一堆未使用的空间。 我没有进行很多物理删除,因此我认为它只是删除的记录。 DBCC SHRINK不会缩小文件。 但是,如果我将表转储到新的空数据库中,则大小将减少约80%。 最终,我在新数据库中获得的内存约为1.5gb,而不是当前数据库中此表中的7gb。 好像sql server正在分配太多内存。 有人遇到过吗? 我希望能够通过删除未使用的分配空间来缩小表,而不必创建一个全新的数据库。

附加信息:

使用完整恢复模型。 我会尝试重建索引,我认为已经有一段时间了。 ldf每天都会使用一些古怪的存储过程将其缩减。


我发现,如果您不小心备份跨记录日志文件(LDF),将会得到类似的行为。我不能过分强调拥有良好备份"卫生"的重要性。如果出现问题,它不仅可以节省培根,而且我还将帮助维护一个良好的紧密数据库。


I don't do many physical deletes

表的更新如何,碎片级别是多少?运行DBCC SHOWCONTIG,如果索引高度分散,则重建索引。之后,执行带有TRUNCATE_ONLY的BACKUP LOG,然后执行SHRINK命令


该表可能是在为索引打开填充的情况下构建的。人们建立填充索引的原因是为了防止页面拆分。

右键单击SQL Manager中的表,然后选择"脚本表"。然后查看是否为PAD_INDEX=OFF。如果使用PAD_INDEX,则可能是表占用空间的地方。


我曾经有一个类似的问题,我相信我发现如果给定表上没有聚集索引,则重新索引/收缩不会回收所有未使用的空间。


过去这对我有用

1
2
3
4
5
6
USE [DBNAME]
GO

DBCC SHRINKFILE (N'FILENAME' , 0, TRUNCATEONLY)

GO

在选项中,您可以指定增长幅度。默认情况下,我认为它是10%,所以给定一个200MB的数据库,当您填充最后一页时,它将分配另外20MB的页面空间。在7GB时,它将分配700MB。

我不知道在创建数据库后可以在哪里修改它,但是我知道在创建数据库时可以在其中修改它。一点点Google工作将很可能向您揭示答案。

注意:我的回答不是如何解决,而是也许如何防止/解释为什么您可能会看到所有这些未分配的空间。


推荐阅读

    linux快速删除命令行?

    linux快速删除命令行?,系统,软件,名称,数据,命令,文件,档案,不了,电脑,通用,l

    删除linux文件命令?

    删除linux文件命令?,名称,不了,文件夹,命令,文件,目录,方法,指令,子目录,选

    linux下删除用户命令?

    linux下删除用户命令?,系统,代码,邮箱,用户组,命令,用户,名称,管理,电脑,账

    linux的删除所有命令?

    linux的删除所有命令?,不了,系统,名称,命令,文件夹,文件,目录,档案,数据,环

    linux删除类型命令?

    linux删除类型命令?,系统,档案,命令,文件,名称,环境,数据,不了,目录,文件夹,

    linux命令删除文件夹?

    linux命令删除文件夹?,系统,名称,环境,文件夹,不了,命令,文件,数据,档案,目

    linux删除用什么命令?

    linux删除用什么命令?,档案,系统,命令,文件夹,文件,不了,名称,目录,终端,指

    linux删除用户组命令?

    linux删除用户组命令?,管理,系统,密码,电脑,名称,用户,用户组,名字,信息,工

    linux删除整行的命令?

    linux删除整行的命令?,系统,标的,数字,连续,档案,命令,光标,文件,模式,编辑,

    linux数据库查找命令?

    linux数据库查找命令?,位置,名称,状态,服务,软件,信息,系统,命令,名字,密码,

    linux命令行怎么删除?

    linux命令行怎么删除?,系统,不了,名称,文件夹,命令,文件,档案,目录,指令,子

    删除缓存的linux命令?

    删除缓存的linux命令?,地址,系统,网络,信息,电脑,情况,服务,缓存,软件,分析,l

    linux数据库同步命令?

    linux数据库同步命令?,信息,系统,汽车,车辆,服务,工作,通信,一致,分析,数据,D

    linux默认命令删除?

    linux默认命令删除?,系统,软件,名称,档案,命令,文件,目录,不了,电脑,文件夹,

    linux下删除命令行?

    linux下删除命令行?,系统,数据,命令,文件,名称,百度,环境,不了,档案,文件夹,l

    linux删除挂载命令?

    linux删除挂载命令?,系统,设备,电脑,信息,管理,网络,名字,密码,文件,命令,lin

    linux退出删除命令行?

    linux退出删除命令行?,地址,状态,系统,工作,命令,电脑,名字,管理,信息,文件,l

    linux空间分配命令?

    linux空间分配命令?,系统,数据,情况,分区,图片,地址,位置,软件,管理,信息,lin

    linux删除空行命令?

    linux删除空行命令?,名称,不了,命令,文件夹,文件,时间,工作,简介,情况,资料,l

    linux删除软件命令?

    linux删除软件命令?,软件,系统,命令,不了,名称,数据,文件夹,文件,工具,百度,l