压缩:
1.压缩的对象
1.表 2.索引(非聚集索引手工做) 3.备份(手工做)
2.对性能影响
1.提高IO性能 2.降低CPU性能
行压缩:
1.对null值不占用空间
2.对Numeric值不占用空间
页压缩:
1.行压缩
2.前缀压缩
3.字典压缩
实例:
准备表数据:
|
1
2
3
4
5
|
select * from SalesOrderDetailselect * into ComOrderDetail from SalesOrderDetailsp_spaceused 'ComOrderDetail'--data:4696k |
磁盘io:
|
1
2
3
|
set statistics io on select * from ComOrderDetail --0.57set statistics io off |

压缩:
|
1
2
|
alter table ComOrderDetail rebuild partition=all with(data_compression=page) |
压缩后表空间的使用情况:
|
1
2
|
-- 表空间的使用情况 sp_spaceused 'ComOrderDetail' --data:1376k |

对非聚集索引的压缩:



持久化的计算列:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
create table computetable(c1 int,c2 int,c3 as (c1+c2)*50) declare @n int set @n=1 while @n<50000 begin insert computetable values(@n,@n+1) set @n=@n+1 end sp_spaceused 'computetable' --data:1608 KB --cpu 的情况set statistics time on select * from computetable --0.57set statistics time off |

|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
create table computetable(c1 int,c2 int,c3 as (c1+c2)*50 persisted) declare @n int set @n=1 while @n<50000 begin insert computetable values(@n,@n+1) set @n=@n+1 end sp_spaceused 'computetable' --data:1608 KB 1824kb --cpu 的情况set statistics time on select * from computetable set statistics time off |
