SQL Server 2008中的行压缩浅析
2010-10-01 09:00:21 来源:WEB开发网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]
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接