SQL Server 2008中的行压缩浅析
2010-10-01 09:00:21 来源:WEB开发网使用下面的事务SQL语句来创建一个没有压缩而有大量数据的类似表:
/****** Object: Table [dbo].[NoNCompressed Table4] Script Date: 05/27/2009 02:24:23 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[NoNCompressed Table4]') AND type in (N'U'))
DROP TABLE [dbo].[NoNCompressed Table4]
GO
CREATE TABLE [NoNCompressed Table4]
(id int, FName varchar(100), LName varchar(100))
declare @n int
set @n=0
while @n<=10000
begin
insert into [NoNCompressed Table4] values
(1,'Adam','Smith'),(2,'Maria','carter'),(3,'Walter','zenegger')
set @n=@n+1
end
GO
现在让我们使用下面的事务SQL语句给这个具有压缩的表添加一个聚集索引。
create clustered index [NoNCompressed Table4_Cl_Idx] on
[NoNCompressed Table4](ID)
with (data_compression = ROW)
使用下面的事务SQL语句来查询这个表所使用的空间。
EXEC sp_spaceused [NONCompressed Table4]
结果
name,rows,reserved,data,index_size,unused
NoNCompressed Table4,30003 ,744 KB,616 KB,64 KB,64 KB
使用下面的事务SQL语句给这个表添加一个具有压缩的非聚集索引。
create Nonclustered index [NoNCompressed Table4_NonCl_Idx] on
[NoNCompressed Table4](Fname)
with (data_compression = ROW)
使用下面的事务SQL语句来查询这个表所使用的空间。
EXEC sp_spaceused [NONCompressed Table4]
结果
name,rows,reserved,data,index_size,unused
NoNCompressed Table4,30003 ,1264 KB,616 KB,496 KB,152 KB
从[NONCompressed Table4] 和[NONCompressed Table3]的空间使用结果,你可以看到索引上的行压缩也工作得很好。
总结
这篇文章介绍了怎样激活表和索引的行数据压缩。
更多精彩
赞助商链接