我有一个 Sql Server 数据库,它有几个行数为零的表,但总共占用了 10 GB 的空间。我可以通过在有问题的表上右键单击/属性来看到这一点(数据空间很大,在 1 到 6 GB 之间,这些表上的行数为零)。我不知道是什么导致了这种情况,因为我认为零行意味着占用的空间几乎为零。
有任何想法吗?
重建表上的所有索引,包括聚集索引。从网上书籍:
重建索引会删除并重新创建索引。这将删除碎片,通过基于指定或现有填充因子设置压缩页面来回收磁盘空间,并重新排序连续页面中的索引行。
就像是:
ALTER INDEX ALL ON [lc_db_user].[JMS_MESSAGES] REBUILD
Run Code Online (Sandbox Code Playgroud)
DBCC SHRINKDATABASE 或(更优选的)DBCC SHRINKFILE 只会在空间实际上已从表本身中释放出来的情况下执行某些操作。另外请确保您熟悉与缩小数据库文件相关的问题。执行摘要:切勿使用自动收缩,仅在必要时收缩文件,并始终跟进完整的重新索引以对您刚刚碎片化的所有索引进行碎片整理。
如果数据库包含许多行数据,那么该数据已从表中删除,数据库引擎将不会收缩文件。有命令可以做到这一点,我将不得不查找它们。
更新:我过去使用过的一个是 DBCC SHRINKDATABASE,您可以在此处找到 TechNet 详细信息
| 归档时间: |
|
| 查看次数: |
8988 次 |
| 最近记录: |