网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > PL/SQL > SQL Server 2008中的数据压缩功能-PLSQL  

SQL Server 2008中的数据压缩功能-PLSQL

2008-07-09  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

        SQL Server 2005 SP2为我们带来了vardecimal功能,这项功能使得原来定长的decimal数据在数据文件中以可变长的格式存储,据称这项功能可以为典型的数据仓库节省30%的空间,而SQL Server 2008在这一基础上又进一步增强了数据压缩功能。SQL Server 2008现在支持行压缩和页面压缩两种选项,数据压缩选项可以在以下对象上启用: 网管有家bitscn.net

        未创建聚簇索引的表 网管网www_bitscn_com

        创建聚簇索引的表 网管网www_bitscn_com

        非聚簇索引(对表设置压缩选项不会影响到该表上的非聚簇索引,因此聚簇索引的压缩需要单独设置) 网管bitscn_com

        索引视图

网管有家www.bitscn.net

        分区表和分区索引中的单个分区

网管u家bitscn.net

        为什么需要数据压缩 中国网管论坛bbs.bitsCN.com

        首先可能需要讨论的问题就是为什么在存储成本不断降低的今天,微软还要煞费苦心地在SQL Server中实现并且不断改进数据压缩技术呢?

网管u家u.bitscn@com

        尽管存储成本已经不再是传统意义上的首要考虑因素,但是这并不代表数据库尺寸不是一个问题,因为数据库尺寸除了会影响到存储成本之外,还极大地关联到管理成本和性能问题。 网管网www_bitscn_com

        首先我们来讨论为什么会有管理成本的问题?因为数据库需要备份,数据库的尺寸越大,那么备份时间就会越长,当然另外一点就是消耗的备份硬件成本也会随之提高(包括需要的备份介质成本和为了满足备份窗口而需要更高级的备份设备带来的采购成本),还有一种管理成本就是数据库的维护成本,例如我们经常需要完成的DBCC任务,数据库尺寸越大,我们就需要更多的时间来完成这些任务。

网管有家www.bitscn.net

        接着我们再看看性能问题。SQL Server在扫描磁盘读取数据的时候都是按照数据页为单位进行读取的,因此如果一张数据页中包含的数据行数越多,SQL Server在一次数据页IO中获得的数据就会越多,这样也就带来了性能的提升。

网管u家www.bitscn.net

        最后考虑存储的成本,按照原先SQL Server 2005 SP2中vardecimal的压缩数据为例,30%的空间节省也就意味着30%的存储成本,而按照SQL Server 2008当前放出的测试数据,采用新的数据压缩技术可以达到2X-7X的存储率,再加上如果企业要考虑容灾而增加的存储空间,这样节省的存储硬件成本也将是想当可观的。 网管bitscn_com

        如何使用数据压缩 网管有家www.bitscn.net

        SQL Server 2008中的压缩选项可以在创建表或索引时通过Option进行设置,例如:

         CREATE TABLE TestTable (col1 int, col2 varchar(200)) WITH (DATA_COMPRESSION = ROW);
网管有家www.bitscn.net

        如果需要改变一个分区的压缩选项,则可以用以下语句:

         ALTER TABLE TestTable REBUILD PARTITION = 1 WITH (DATA COMPRESSION = PAGE);
网管u家bitscn.net

        如果需要为分区表的各个分区设置不同的压缩选项,可以使用以下的语句:(SQL Server 2008可以对不同的分区使用不同的压缩选项,这一点对于数据仓库应用是非常重要的,因为数据仓库的事实表通常都会有一个或数个热分区,这些分区中的数据经常需要更新,为了避免数据压缩给这些分区上的数据更新带来额外的处理载荷,可以对这些分区关闭压缩选项)

         CREATE TABLE PartitionedTable (col1 int, col2 varchar(200))
        ON PS1 (col1)
        WITH (
        DATA_COMPRESSION = ROW ON PARTITIONS(1),
        DATA_COMPRESSION = PAGE ON PARTITION(2 TO 4));
网管论坛bbs_bitsCN_com

 

网管联盟bitsCN_com

TAGs功能   压缩   数据       成本   需要   SQL   分区   Server   存储    
 上一篇:数据库引擎中重要的Discontinued Feature-PLSQL   下一篇:SQL Server中的临时表和表变量-PLSQL
SQL Server 2008中的数据压缩功能-PLSQL 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: