使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

徵狀

假設您有一個表格,其中包含 Microsoft SQL Server 2008、SQL Server 2008 R2、SQL Server 2012 或 SQL Server 2014 中的大型物件(LOB)資料行。 當您使用較小的 LOB 資料更新 LOB 欄,並嘗試使用下列方法回收未使用的空間:

  • DBCC SHRINKDATABASE/DBCC SHRINKFILE

  • 變更索引重組(LOB_COMPACTION = 開啟)

在這種情況下,無法回收未使用的空間。

每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:

因應措施

若要解決此問題,請使用下列因應措施:

  • 將所有資料列匯出至新資料表,然後將列移回。 這會重組 LOB 資料並釋放未使用的空間。

  • 使用 DBCC SHRINKFILE 搭配 EMPTYFILE 選項,將所有資料移至新加入的資料檔,然後移除舊的資料檔案。 這會透過釋放未使用的空間來重組 LOB 資料。

其他相關資訊

下列範例顯示在您使用較小的 LOB 資料更新 LOB 欄之前及之後,使用 TSQL 命令 sp_spaceused 「table_name 」所未使用的空間:更新之前:

列名

留給

資料

index_size

未使用

table_name

1000

261072 KB

261056 KB

16 KB

0 KB

更新後:

列名

留給

資料

index_size

未使用

table_name

1000

261072 KB

199672 KB

16 KB

61384 KB

狀態

Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?
按下 [提交] 後,您的意見反應將用來改善 Microsoft 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×