zoukankan      html  css  js  c++  java
  • SqlServer性能优化 通过压缩与计算列提高性能(十一)

     压缩:

       1.压缩的对象

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

       2.对性能影响

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

     行压缩:

         1.对null值不占用空间

         2.对Numeric值不占用空间

    页压缩:

         1.行压缩

         2.前缀压缩

         3.字典压缩

       实例:

    准备表数据:

    select * from SalesOrderDetail
    
    select * into ComOrderDetail from SalesOrderDetail
    
    sp_spaceused 'ComOrderDetail'--data:4696k
    

     磁盘io:

    set statistics io on
     select * from ComOrderDetail  --0.57
    set statistics io off
    

     压缩:

    alter table ComOrderDetail rebuild partition=all
    	with(data_compression=page)
    

     压缩后表空间的使用情况:

    -- 表空间的使用情况	
    sp_spaceused 'ComOrderDetail'  --data:1376k
    

     

    对非聚集索引的压缩:

     持久化的计算列:

    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
    

     

    	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
    

     

          

  • 相关阅读:
    深入c#的String类
    C#语法快速热身
    【BZOJ】1676: [Usaco2005 Feb]Feed Accounting 饲料计算
    【BZOJ】2056: gift? 高精度?
    【BZOJ】3036: 绿豆蛙的归宿
    【BZOJ】2321: [BeiJing2011集训]星器
    【VIJOS】P1401复制CS
    【BZOJ】2453: 维护队列&&【BZOJ】2120: 数颜色 二分+分块 双倍经验
    【BZOJ】3343: 教主的魔法
    【BZOJ】1452: [JSOI2009]Count 树状数组
  • 原文地址:https://www.cnblogs.com/sunliyuan/p/6248988.html
Copyright © 2011-2022 走看看