博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
删除变长列字段后使用DBCC CLEANTABLE回收空间
阅读量:6237 次
发布时间:2019-06-22

本文共 1654 字,大约阅读时间需要 5 分钟。

SQL Server在删除变长列或者减小变长列的长度后,表的大小不会响应自动减小,除非DBA重建索引或者reorganized索引。变长列包括varchar,nvarchar, varchar(max), nvarchar(max), varbinary, varbinary(max), text, ntext,image, sql_variant,xml

 

SQL Server提供了一个DBCCCLEANTABLE的命令可以回收表或索引视图中已删除的可变长度列的空间。

 

下面我们做个测试:

 

1. --创建测试表

CREATE TABLE testfreespace

( column1 INT

,column2 CHAR(20)

,column3 VARCHAR(8000))

 

2. --插入数据

DECLARE @count INT;

SET @count = 0;

WHILE @count < 3000

BEGIN

SELECT

@count = @count + 1;

INSERT into testfreespaceVALUES( @count,'test row # '+CAST(@countASVARCHAR(10)),REPLICATE('TestData', 3000)) ;

END

 

3. --查看使用空间使用情况

SELECT

alloc_unit_type_desc,

page_count,

avg_page_space_used_in_percent,

record_count

FROM sys.dm_db_index_physical_stats(DB_ID('FNDBLogtest'),OBJECT_ID(N'Testfreespace'),NULL,NULL,'Detailed')

结果:

alloc_unit_type_desc page_count avg_page_space_used_in_percent record_count

-------------------------------------------------------------------------------- ------------------------------ --------------------

IN_ROW_DATA 3000 3000

 

(1 row(s) affected)

 

4. --删除变长列Column3

ALTER TABLETestfreespaceDROPCOLUMNColumn3

 

5. 使用3脚本查询看到avg_page_space_used_in_percent仍然是99.2710649864097 没有改变。

 

 

6. --执行DBCC CLEANTABLE

DBCC CLEANTABLE(FNDBLogTest,"Testfreespace")

 

7. 再次运行3脚本看到下面的结果:

 

alloc_unit_type_desc page_count avg_page_space_used_in_percentrecord_count

-------------------------------------------------------------------------------- ------------------------------ --------------------

IN_ROW_DATA 3000 0.382999752903385 3000

 

(1 row(s) affected)

 

 

可以看到现在avg_page_space_used_in_percent已经变了,证明空间已经释放。

 

更多信息参考:DBCCCLEANTABLE (Transact-SQL)

本文转自 lzf328 51CTO博客,原文链接:

http://blog.51cto.com/lzf328/960310

转载地址:http://bvkia.baihongyu.com/

你可能感兴趣的文章
nagios客户端未启动报错
查看>>
南京大学周志华教授当选欧洲科学院外籍院士
查看>>
马士兵教学语录
查看>>
计算机网络与Internet应用
查看>>
oracle在线迁移同步数据,数据库报错
查看>>
linux性能剖析工具
查看>>
flutter中的异步
查看>>
计算机高手也不能编出俄罗斯方块——计算机达人成长之路(16)
查看>>
error LNK2001: 无法解析的外部符号 __CrtDbgReport
查看>>
会员充值-》解决方案之一
查看>>
Jmeter的接口测试简介
查看>>
洛谷P3369 【模板】普通平衡树(FHQ Treap)
查看>>
数字签名和数字证书
查看>>
「SP122」STEVE - Voracious Steve 解题报告
查看>>
什么是LogDashboard?
查看>>
1025. 水枪灭火——java
查看>>
leetcode148. Sort List
查看>>
limits.conf文件修改注意事项
查看>>
Spring4面向切面AOP
查看>>
数据结构和算法学习总结04 线性表---栈
查看>>