标签:io 数据 sp on c size 数据库 sql res
当数据库比较大,而要进行备份时,我们可以启动数据库备份的压缩,这样减少对于磁盘空间的消耗。
其实,不仅可以在备份的时候压缩,在SQL Server 2008中,我们还可以对表进行压缩,下面通过压缩前、压缩后的比较,来展示SQL Server 2008强大的表压缩功能。
这里在测试数据库找了一个较大的表,共有9439661 条记录,
1、压缩前表的大小
SP_SPACEUSED 'TB_WCB' /* name rows reserved data index_size unused TB_WCB 9439661 746016 KB 412216 KB 329944 KB 3856 KB */
2、压缩表大小
这里启用的是row 级别的压缩
ALTER TABLE TB_WCB rebuild WITH (DATA_COMPRESSION =ROW)
SP_SPACEUSED 'TB_WCB' /* name rows reserved data index_size unused TB_WCB 9439661 497784 KB 167168 KB 328120 KB 2496 KB */
从1中可以看到,压缩前data大小是412M,而在压缩后是 167M,压缩后表的大小只是原来表的40%,效果很明显,而且由于这个表中大部分字段只是id,相对而言重复值还不算多的。
但是,我们看到,索引的大小基本上变化不大,于是我们继续进行索引的压缩:
5、压缩索引
alter index IDX_TB_WCB_ID on TB_WCB rebuild with(data_compression=row)
SP_SPACEUSED 'MS_VISIT_QST_OPT' /* name rows reserved data index_size unused TB_WCB 9439661 317208 KB 167168 KB 149872 KB 168 KB */
通过表和索引的压缩,我们可以减小表占用的磁盘空间,让更多的数据页缓存到内存中,显著提高IO效率。
【SQL Server性能优化】SQL Server 2008之表压缩
标签:io 数据 sp on c size 数据库 sql res
原文地址:http://blog.csdn.net/sqlserverdiscovery/article/details/39056541