All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
delphi文本文件类型的使用方法详解
PHP字符处理函数str_split、implode、strpo_php资料_编程技术
关于ASP.NET页面打印技术的总结_.net资料_编程技术
漫谈Ajax在ASP.Net中的使用_[Asp.Net教程]
ASP.NET,Framework之OPENFILENAME,新元素初探_[Asp.Net教程]
不经保存,直接读取上传文件的内容_[Asp.Net教程]
delphi类型文件声明方式
Visual,Studio,2008英文正式版已经发布在MSDN_[Asp.Net教程]
让ASP.NET简便使用SCRIPT_[Asp.Net教程]
关天asp.net,ajax,beta中在updatepnael中注册脚本的解决方案_.net资料_编程技术
Reading number is top 10 pictures
yy365网站上的美女1
这才是真正的人体艺术4
So beauty, will let you spray blood1
Household design comfortable contracted
2012 national geographic daily picture8
Take you to walk into the most true north Korea rural1
2012 national geographic daily picture9
Chinese paper-cut grilles art appreciation5
美女和狗狗1
你白吃了多少药
Download software ranking
星际争霸1.08硬盘免安装版
Detective task-the top secret prostitution files
Unix video tutorial13
matrix2
Unix video tutorial5
超级战舰
Tram sex maniac 2 (H) rar bag2
Sora aoi's film--cangkong_Blue.Sky
Dance with duck(male prostitution)
C#高级编程(第4版)
delv published in(发表于) 2013/12/30 4:43:46 Edit(编辑)
探密微软SQL,Server,2008中新压缩特性_mssql学习_编程技术

探密微软SQL,Server,2008中新压缩特性_mssql学习_编程技术

探密微软SQL Server 2008中新压缩特性_mssql学习_编程技术-你的首页-uuhomepage.com
  导语:SQLServer2005SP2为我们带来了vardecimal功能,这项功能使得原来定长的decimal数据在数据文件中以可变长的格式存储,据称这项功能可为数据仓库节省空间,而SQLServer2008在这基础上增强了数据压缩功能。
  SQLServer中的数据压缩功能,最早是从SQLServer2005开始,在企业版和开发版中增加了一种叫做vardecimal的新存储格式,这通过该功能应用可以影响到decimal和numeric字段。如果数据库里的表含有decimal和numeric类型数据,用户就可以使用vardecimal存储格式来缩小数据库的大小。值得注意的是,能够节省出多少空间取决于数据库中含有多少decimal或numeric数据列、数据分布情况以及表的大小。
使用数据压缩
  而正是这个数据压缩功能,成为SQLServer2008中又一新特性:数据压缩,利用该特性,可以减小数据表,索引以及分区的子集的大小。但是这个之前在SQLServer2005存在的功能,为何要在新一代版本系统中改进,存储成本不断降低的市场环境下,数据压缩技术能给企业何种好处?
  尽管存储成本已经不再是企业关注的敏感因素,但是这并不代表数据库尺寸不会对企业运营中效率有影响,因为数据库尺寸除了会影响到存储成本之外,还极大地关联到管理成本和性能问题。
  首先,因为数据库需要备份,数据库的尺寸越大,那么备份时间就会越长,同时消耗的备份硬件成本提升,还有一种管理成本就是数据库的维护成本。从性能方面,SQLServer在扫描磁盘读取数据的时候都是按照数据页为单位进行读取的,因此如果一张数据页中包含的数据行数越多,SQLServer在一次数据页IO中获得的数据就会越多,这样也就带来了性能的提升。
  相对于SQL Server2005SP2中vardecimal的压缩数据,SQLServer2008当前放出的测试数据,采用新的数据压缩技术可以达到更高的存储率,再加上企业对于容灾而增加的存储空间,所有的这些都是SQLServer2008中这一新特性有利一面。
第2页:两种压缩模式
  
  了解压缩数据真正好处之后,可以感受到概念的渗透,借助数据压缩,减少了存储成本,并提高查询性能,减少I/O和增加缓冲点击率。可见,这一个功能在应用过程中还是十分有效果的,SQLServer2008中的数据压缩有两种应用方式,即行压缩和页压缩,下面对这两种数据压缩类型简单做个对比。
数据压缩向导过程中选择压缩类型
  行压缩。行压缩可以将固定长度类型存储为可变长度存储类型。例如char(100)列储存在一个可变长度存储格式将只使用了存储量所定义的数据。储存的“SQLServer2008”,压缩后只需要存放15个字符,而非全部100个字符,从而节省了85%的存储空间。这是在SQLServer2005ServicePack2中提供的vardecimal存储格式的思路的延伸。同时需要注意的是,这种压缩模式,将对所有数据类型的NULL和0值进行优化,从而使它们不占用任何字节。
  尽管SQLServer2008数据压缩扩展了这个功能,对所有固定长度的数据类型都进行了处理,包括integer、char和float。现在数据不是以固定大小的字节进行存储,而是用最小所需的字节,只需要启用行压缩功能就可以执行。但是,行压缩无法处理XML、BLOB和MAX数据类型。
  页面压缩模式。这种压缩功能,建立在行压缩基础之上,通过只存储一次页面上相同事件字节来将存储的冗余数据减到最小。使用页压缩压缩表和索引,除了采用行压缩,还采用了前缀压缩和字典压缩。
  数据压缩会减少的大小您的表格或索引指标,最好是先评估一下压缩后所能节省的空间。每一个页都是单独压缩的,前缀和字典也存储在页内。由于页是存储分配的原子单位,将半页压缩到四分之一页是没有任何意义的,所以,只有在页的内容快满的时候才会开始压缩处理。
  在使用行和页压缩时还有一个性能权衡问题,因为CPU使用率会上升,但I/O使用率和内存占用会下降。但这所有的压缩选项可能成为SQLServer2008企业版专享选项。
第3页:如何使用数据压缩
  附录(如何使用数据压缩):
  (1)启用行压缩
  如果我们要在指定的表上启用行压缩,可执行以下语句:
  CREATE TABLE Alpha(col1 int,col2 char(1000))
  WITH (DATA_COMPRESSION = ROW)
  (2)启用页压缩
  如果我们要在指定的分区上启用压缩,可执行以下语句:
  CREATE TABLE Alpha_Partition(col1 int,col2 char(1000))
  ON PartitionScheme(col 1)
  WITH
  (DATA_COMPRESSION = PAGE ON)
  PARTITIONS(1-3)
  (3)修改压缩
  如果要把一个现有的索引修改为使用压缩,可执行以下语句:
  ALTER INDEX Collndx ON Alpha REBUILD
  WITH (DATA_C0MPRESSION=PAGE)
  ALTER INDEX Collndx ON Alpha REBUILD
  partition = 2
  WITH (DATA_COMPRESSION=PAGE)
  SQL Server 2008中的压缩选项可以在创建表或索引时通过Option进行设置,例如:
  CREATE TABLE TestTable (col1 int,col2varchar(200))WITH(DATA_COMPRESSION = ROW);
  如果需要改变一个分区的压缩选项,则可以用以下语句:
  ALTER TABLE TestTable REBUILD PARTITION = 1 WITH(DATACOMPRESSION=PAGE);
  如果需要为分区表的各个分区设置不同的压缩选项,可以使用以下的语句:(SQLServer2008可以对不同的分区使用不同的压缩选项,这一点对于数据仓库应用是非常重要的,因为数据仓库的事实表通常都会有一个或数个热分区,这些分区中的数据经常需要更新,为了避免数据压缩给这些分区上的数据更新带来额外的处理载荷,可以对这些分区关闭压缩选项)
  CREATE TABLE PartitionedTable (col1 int, col2varchar(200))
  ON PS1 (col1)
  WITH (DATA_COMPRESSION = ROW ON PARTITIONS(1),
  DATA_COMPRESSION = PAGE ON PARTITION(2 TO 4));
  如果是为某个索引设置压缩选项的话,可以使用:
  CREATE INDEX IX_TestTable_Col1 ONTestTable(Col1)WITH(DATA_COMPRESSION = ROW);
  如果是修改某个索引的压缩选项,可以使用:
  ALTER INDEX IX_TestTable_Col1 ONTestTableREBUILDWITH(DATA_COMPRESSION = ROW);




添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.