SQL Server 7.0发布的时候,SQL Server中的页面大小是2K;现在页面大小是8K。
copyright 51data
微软在SQL Server 2008中推出了页面压缩。这个新特性在企业版和开发版本中都提供了。SQL Server的页面压缩特性可以压缩整个页面。 51data.net.cn
页面压缩只适用于当页面是完整的时候。当发生页面压缩时,以下面的顺序发生三个操作: 51data.net.cn
记录压缩
唯实上海数据恢复公司
前缀压缩 内容来自51data
字典压缩 唯实上海数据恢复公司
让我们使用下面的事务SQL语句创建一个没有压缩选项的表,并给它添加一些上海硬盘数据恢复:
唯实上海数据恢复公司
/****** Object: Table [dbo].[NoNCompressed Table] Script Date: 06/12/2009 02:24:23 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[NoNCompressed Table]') AND type in (N'U')) DROP TABLE [dbo].[NoNCompressed Table] GO CREATE TABLE [NoNCompressed Table] (id int, FName char(100), LName char(100)) 唯实上海数据恢复公司 -- Add 10,000 rows declare @n int set @n=0 while @n<=10000 begin insert into [NoNCompressed Table] values (1,'Adam','Smith'),(2,'Maria','carter'), (3,'Walter','zenegger'),(4,'Marianne','smithsonian') set @n=@n+1 end GO 现在让我们使用下面的事务SQL语句来查询这个表所使用的空间。 EXEC sp_spaceused [NONCompressed Table] |
name,rows,reserved,data,index_size,unused
NoNCompressed Table,40004,8456 KB,8424 KB,8 KB,24 KB
让我们使用下面的事务SQL语句来创建一个具有压缩的表,并给它添加相同数量的上海硬盘数据恢复:
51data.net.cn
/****** Object: Table [dbo].[Compressed Table] Script Date: 06/12/2009 02:24:57 ******/ 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 char(100), LName char(100)) with 唯实上海数据恢复公司 (Data_compression = PAGE) 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'),(4,'Marianne','smithsonian') set @n=@n+1 end GO 使用下面的事务SQL语句查询这个表所使用的空间。 EXEC sp_spaceused [Compressed Table] 结果 name,rows,reserved,data,index_size,unused Compressed Table,40004, 904 KB,896 KB,8 KB,0 KB |
唯实上海数据恢复公司