WEB开发网
开发学院数据库MSSQL Server SQL Server 2008中的行压缩浅析 阅读

SQL Server 2008中的行压缩浅析

 2010-10-01 09:00:21 来源:WEB开发网   
核心提示: IF EXISTS (SELECT * FROM sys.objectsWHERE object_id = OBJECT_ID(N'[dbo].[Compressed Table]')AND type in (N'U'))DROP TABLE [dbo].[

IF EXISTS (SELECT * FROM sys.objects

WHERE object_id = OBJECT_ID(N'[dbo].[Compressed Table]')

AND type in (N'U'))

DROP TABLE [dbo].[Compressed Table]

GO

CREATE TABLE [Compressed Table]

(id int, FName varchar(100), LName varchar(100)) with

(Data_compression = ROW)

declare @n int

set @n=0

-- Add 10,000 rows

while @n<=10000

begin

insert into [Compressed Table] values

(1,'Adam','Smith'),(2,'Maria','carter'),(3,'Walter','zenegger')

set @n=@n+1

end

GO

使用下面的事务SQL语句来查询这个表所使用的空间。

EXEC sp_spaceused [Compressed Table]

结果

name,rows,reserved,data,index_size,unused

Compressed Table,30003 ,584 KB,576 KB,8 KB,0 KB

这个结果显示所获得的压缩表中的数据字段大小要比非压缩表中的要小很多。

有时是某个表已经有大量的数据存在了,而你需要压缩这个表。在这种情况下,你可以使用ALTER TABLE 语句来添加数据压缩。让我们通过创建另一个没有压缩的表来模拟这种情况。还有,我们要使用下面的事务SQL语句来添加一些与上面所使用的数据类似的数据:

/****** Object: Table [dbo].[NoNCompressed Table] Script Date: 05/27/2009 02:24:23 ******/

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[NoNCompressed Table2]') AND type in (N'U'))

DROP TABLE [dbo].[NoNCompressed Table2]

上一页  1 2 3 4 5  下一页

Tags:SQL Server 压缩

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接