陋室铭
永远也不要停下学习的脚步(大道至简至易)

压缩:

   1.压缩的对象

        1.表   2.索引(非聚集索引手工做)   3.备份(手工做)

   2.对性能影响

        1.提高IO性能     2.降低CPU性能

 行压缩:

     1.对null值不占用空间

     2.对Numeric值不占用空间

页压缩:

     1.行压缩

     2.前缀压缩

     3.字典压缩

   实例:

准备表数据:

1
2
3
4
5
select * from SalesOrderDetail
 
select * into ComOrderDetail from SalesOrderDetail
 
sp_spaceused 'ComOrderDetail'--data:4696k

 磁盘io:

1
2
3
set statistics io on
 select * from ComOrderDetail  --0.57
set 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.57
set 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

 

 

posted on 2018-08-30 09:21  宏宇  阅读(507)  评论(0编辑  收藏  举报