Lob 列 (VarBinary(MAX)) を含むテーブルを変更しました。
私が走るとき
select * from sys.dm_db_partition_stats
where [object_id] = object_id('MyTable')
lob_used_page_count は 1014969 です。0 になると思っていました。間違っているのでしょうか、何かする必要がありますか?
Lob 列 (VarBinary(MAX)) を含むテーブルを変更しました。
私が走るとき
select * from sys.dm_db_partition_stats
where [object_id] = object_id('MyTable')
lob_used_page_count は 1014969 です。0 になると思っていました。間違っているのでしょうか、何かする必要がありますか?
クラスター化インデックスを再構築します。SQL Server で列を削除しても、クラスター化インデックスが再構築されるまで実際には物理的に削除されません。
試してみてくださいALTER TABLE MyTable REBUILD
。
以下のテストからトリックを行うようです。
CREATE TABLE LobTest
(
PK INT IDENTITY PRIMARY KEY CLUSTERED,
A CHAR(7000),
B VARCHAR(MAX)
)
INSERT INTO LobTest
SELECT 'A', REPLICATE(CAST('A' AS VARCHAR(MAX)), 10000) UNION ALL
SELECT 'A', REPLICATE(CAST('A' AS VARCHAR(MAX)), 10000) UNION ALL
SELECT 'A', REPLICATE(CAST('A' AS VARCHAR(MAX)), 10000)
ALTER TABLE LobTest
DROP COLUMN B
SELECT *
FROM sys.dm_db_partition_stats
WHERE [object_id] = object_id('LobTest')
ALTER TABLE LobTest REBUILD
SELECT *
FROM sys.dm_db_partition_stats
WHERE [object_id] = object_id('LobTest')
DROP TABLE LobTest