-- =============================================
-- 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 server 2008启用数据压缩(基础)
最新推荐文章于 2025-06-03 10:36:28 发布