sql server 2008启用数据压缩(基础)

-- =============================================      
-- Author:      余波(杭州)      
-- Create date: 2011/09/17      
-- Description: sql server 2008数据压缩      
-- =============================================      
-- sql server新增了数据压缩功能,可以显著减少数据的硬盘存储空间
-- 数据压缩包括行压缩和页压缩,关于理论知识大家可以去看一下书哈

---------创建表并设置表的压缩选项---------------

create table test
(
	id int not null identity(1,1),
	t_id int not null,
	t_desc char(200) not null,  -----行压缩主要是为数值类型和固定长度的类型,使用可变长度的存储,所以用char,突出效果
	constraint pk_tb primary key(id)
)with (data_compression=none)  ----data_compression就是数据压缩的关键字,其中有none(不启用数据压缩),row(行压缩),page(页压缩)

---------修改表的数据压缩形式-------------------
alter table test rebuild with (data_compression=page)

---------插入测试数据---------------------------
insert into test(t_id,t_desc)
values(CAST(RAND()*10 as int),REPLICATE('a',50))
GO 1000

----------查看启用数据压缩后的效果-------------
exec sys.sp_estimate_data_compression_savings
	@schema_name='dbo',   --------模式名
	@object_name='test',  --------表名
	@index_id=null,
	@partition_number=null,
	@data_compression=page  -------采用数据压缩方式

----------------对分区进行数据压缩--------------

create table partition_test
(
	id int not null identity(1,1),
	p_id int not null,
	p_date datetime,
	constraint pk_partitiontest primary key clustered(id)
)on[s_test](p_date)   -----------分区方案参照sql server分区表基础(一)
with (data_compression=page on partitions(1 to 3),data_compression=row on partitions (4))
-----------为分区1至3启用数据页压缩,为分区4启用数据行压缩

--------------------修改分区数据压缩方式------------------
alter table partition_test
rebuild partition=4
with (data_compression=page)

 

你可能感兴趣的:(sql,Date,server,schema,table,null,compression)