【问题标题】:SQL Server Management Studio not showing correct data space of a tableSQL Server Management Studio 未显示表的正确数据空间
【发布时间】:2015-02-01 16:48:24
【问题描述】:

之前

我有一张有 8 列的表格。这里重要的是SerializedCriteria。它是具有大量数据的文本列。大量数据是指超过37000 strings,文本长度为20-30 kb

不管怎样,这就是以前的桌子的样子:

桌子很大。 37218 records 总大小超过1 GB

动作

  1. 删除了该列,因为我已将条件移至另一个表。 我正在使用 Entity Framework Code First 迁移来更改数据库。

  2. 收缩数据库和数据库的文件

  3. 重新启动 Microsoft SQL Server Management Studio

之后

当然,该列已按我的意图删除:

问题是经过上述操作后,表的size statistics还是一样

问题

  1. 是 Microsoft SQL Server Management Studio 的问题还是被删除的列的数据仍然存在?
  2. 如何查看表格的实际大小?
  3. 如果仍然使用,如何从列中删除已使用的数据。我需要以某种方式缩小或重新创建表吗?

注意

屏幕截图具有不同的 UI,因为我已经从生产数据库中获取屏幕,因为在我的本地 SQL Server 中已经完成了更改。

【问题讨论】:

  • 这个问题属于dba.stackexchange.com
  • 重建表很可能会解决问题并释放空间
  • 重建表修复了它。现在它显示了正确的值。

标签: sql-server database ssms


【解决方案1】:

当您删除可变长度列时,它是一个仅元数据操作,因此不会立即回收空间。您可以使用 DBCC CLEANTABLE (https://msdn.microsoft.com/en-us/library/ms174418.aspx) 回收空间:

DBCC CLEANTABLE(0, N'dbo.YourTable');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 2021-01-18
    • 1970-01-01
    • 2022-11-22
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多