数据表空间的重用(Reusing space in a table)
2010-04-01 00:00:00 来源:WEB开发网1.理解SQL Server怎样自动的重新利用数据表的空间,下面以实例来做简要的说明.
1.1 建立临时测试数据
创建一个测试table: Test,填空1000行数据.
--create a test table
CREATE TABLE dbo.Test
(
col1 INT
,col2 CHAR(25)
,col3 VARCHAR(4000)
) ;
--create some test data
DECLARE @cnt INT ;
SET @cnt = 0 ;
WHILE @cnt < 1000
BEGIN
SELECT
@cnt = @cnt + 1 ;
INSERT
dbo.Test ( col1,col2,col3 )
VALUES (
@cnt
,'test row # ' + CAST(@cnt AS VARCHAR(10)) + 'A'
,REPLICATE('ABCD', ROUND(RAND() * @cnt, 0))
) ;
END
首先介绍一个DMV:sys.dm_db_index_physical_stats
查看原图(大图)
有几个重要的栏位: alloc_unit_type_desc:有效值为:IN_ROW_DATA,LOB_DATA,ROW_OVERFLOW_DATA page_count:储存数据行的数据页数 avg_page_space_used_in_percent:数据页使用的平均百分比 record_count:总的记录数根据这个DMV看看测试表Test的查询结果:
--DMV SQL
select alloc_unit_type_desc,page_count,avg_page_space_used_in_percent,record_count
from sys.dm_db_index_physical_stats(db_id(),object_id('Test'),NULL,NULL,'Detailed')
更多精彩
赞助商链接