数码资讯
SQLServer2008中数据表压缩的详细描述
SQL Server 2005 SP2带给我们的vardecimal功能,当一个新的存储格式,vardecimal介绍的decimail和数值数据类型,vardecimal存储格式允许decimal和numeric数据类型可以存储为一个可变长度列。这个功能使原有的固定长度的十进制数据存储在数据文件中
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
SQL Server 2005 SP2带给我们的vardecimal功能,当一个新的存储格式,vardecimal介绍的decimail和数值数据类型,vardecimal存储格式允许decimal和numeric数据类型可以存储为一个可变长度列。这个功能使原有的固定长度的十进制数据存储在数据文件中的变量的格式。据称,这一功能可以为典型的数据仓库节省30%的空间,和SQL Server 2008进一步提高数据压缩功能,这basis.sql服务器2008现在支持线压缩和网页压缩两选项和数据压缩选项可以对下列对象启用:
1。不创建群集索引的表
2。创建群集索引表
三.非聚集索引(表设置压缩选项不影响表上的非聚集索引,因此需要单独设置集群索引的压缩)
4。索引视图
5。分区索引中的分区表和单个分区
使用数据压缩的意义:
首先,让我们来看看为什么今天的存储成本继续下降。如今,微软也正在努力在SQL Server中实现并不断改进数据压缩技术。
虽然传统意义上的存储成本不再是首要考虑的因素,但这并不意味着数据库大小不是问题,因为数据库大小不仅影响存储成本,而且与管理成本和性能有关。
为什么存在管理成本问题由于数据库备份,数据库规模大,那么备份的时间会更长,当然,还有一点就是备份硬件成本的消耗将增加(包括备份媒体需要满足成本、采购成本和备份窗口需要带来更先进的备份设备),有一个成本管理数据库的维护成本,例如,我们经常需要完整的DBCC任务,数据库的规模越大,我们需要更多的时间来完成这些任务。
然后让我们在扫描磁盘的性能problem.sql服务器看读数据时,数据与页面单位根据读取,如果数据线包含在IO在一个数据页的SQL Server数据数量数据页会更多,所以它带来的性能改进。
最后,考虑到存储成本,根据数据压缩vardecimal原始SQL Server 2005 SP2为例,30%的节省空间的方式存储成本的30%,而按照目前的SQL Server 2008版本的测试数据,新的数据压缩技术可以实现2x-7x存储率,加上企业是否应该考虑灾难恢复增加存储空间,存储硬件的成本节约也将要相当。
使用数据压缩方法:
SQL Server 2008中的压缩选项可以在创建表或索引时按选项设置,如:
复制代码代码如下:创建数据表(col1 int,COL2 varchar(200))和(data_compression =行);
如果需要更改分区的压缩选项,可以使用以下语句:
复制代码代码如下:修改表数据重建分区= 1(数据压缩=页);
如果分区表需要为每个分区设置不同的压缩选项,你可以使用下面的语句:(SQL Server 2008为数据仓库的应用使用不同的分区不同的压缩选项是非常重要的,因为数据仓库的事实表通常有一个或几个热分配这些分区数据经常需要更新,以避免数据压缩数据的更新处理负载,额外的压缩选项可以关闭这些分区)
复制代码如下:创建表partitionedtable(col1 int,COL2 varchar(200))
在PS1(COL1)
(与
data_compression =排分区(1),
在分区data_compression =页(2到4));
如果您正在为索引设置压缩选项,您可以使用它:
复制代码代码如下所示:
创建数据索引ix_testtable_col1(COL1)与(data_compression =行);
如果您修改索引的压缩选项,您可以使用它:
复制代码代码如下:改变数据指标ix_testtable_col1重建(data_compression =行);
SQL Server 2008还提供了一个sp_estimate_data_compression_savings存储过程来帮助DBA估计物体的大小压缩选项后激活。
数据压缩原理:
对于行压缩,SQL Server 2008使用以下三种方法来节省存储空间:
与记录相关联的元数据开销减少了。这个元数据是关于列、列长度和偏移量的信息。在某些情况下,元数据开销可能比旧存储格式大。
它采用可变长度的存储格式为数值类型(例如,整数,小数,浮)和数值类型(例如,日期时间和金钱)。
它使用不存储空字符的可变长度格式存储固定长度字符串。
对于页面压缩,SQL Server 2008在数据页上轮流使用。
1。线压缩
2。前缀压缩
三.字典压缩
使用数据压缩的考虑:
虽然SQL Server 2008的数据压缩功能非常有价值,但仍存在一些值得注意的问题:
数据压缩功能仅在企业和开发版本中可用。
数据压缩允许数据页存储更多的数据行,但它不会改变单线数据的最大8060字节的限制。
当在已设置的表上创建群集索引时,集群索引默认地默认为原始表上的压缩选项。
在没有集群索引的表上设置页压缩时,仅在以下情况下才实现页压缩的实际效果:
1。数据使用大容量插入语法添加到表中。
2。数据使用插入到表中添加到…与(TABLOCK)语法
三.执行修改表…用页压缩选项重建命令
更改表中没有聚集索引的压缩选项会导致表上所有非聚集索引被重建,因为这些聚集索引的数据行地址已经更改。
更改压缩选项所需的临时空间大小与创建索引所需的空间相同。因此,对于分区表,我们可以逐一设置压缩选项,以减少临时空间的需求压力。
因为SQL Server 2008的数据压缩技术是vardecimal SQL Server 2005 SP2的超集,因此设置数据压缩不需要保留vardecimal。当然,SQL Server 2008为保持向后兼容性,在目前的版本中仍然保留vardecimal SQL Server 2008,但是下一个版本,可以被抛弃,vardecimal选项,那么这些设置应该尽快转变到数据库的数据压缩设置。
SQL Server 2008的压缩选项是在存储引擎层的工作,为这一特征的其他部分SQL Server是透明的,所以当我们使用大容量数据到SQL服务器的负载方式外,将大大增加CPU的工作负荷,同时将出口到外部表数据的压缩文件时,可能消耗更多的比原来的很多空间。
我相信,在这里,朋友们对SQL Server 2008中的数据压缩技术有了更全面的了解。
1。不创建群集索引的表
2。创建群集索引表
三.非聚集索引(表设置压缩选项不影响表上的非聚集索引,因此需要单独设置集群索引的压缩)
4。索引视图
5。分区索引中的分区表和单个分区
使用数据压缩的意义:
首先,让我们来看看为什么今天的存储成本继续下降。如今,微软也正在努力在SQL Server中实现并不断改进数据压缩技术。
虽然传统意义上的存储成本不再是首要考虑的因素,但这并不意味着数据库大小不是问题,因为数据库大小不仅影响存储成本,而且与管理成本和性能有关。
为什么存在管理成本问题由于数据库备份,数据库规模大,那么备份的时间会更长,当然,还有一点就是备份硬件成本的消耗将增加(包括备份媒体需要满足成本、采购成本和备份窗口需要带来更先进的备份设备),有一个成本管理数据库的维护成本,例如,我们经常需要完整的DBCC任务,数据库的规模越大,我们需要更多的时间来完成这些任务。
然后让我们在扫描磁盘的性能problem.sql服务器看读数据时,数据与页面单位根据读取,如果数据线包含在IO在一个数据页的SQL Server数据数量数据页会更多,所以它带来的性能改进。
最后,考虑到存储成本,根据数据压缩vardecimal原始SQL Server 2005 SP2为例,30%的节省空间的方式存储成本的30%,而按照目前的SQL Server 2008版本的测试数据,新的数据压缩技术可以实现2x-7x存储率,加上企业是否应该考虑灾难恢复增加存储空间,存储硬件的成本节约也将要相当。
使用数据压缩方法:
SQL Server 2008中的压缩选项可以在创建表或索引时按选项设置,如:
复制代码代码如下:创建数据表(col1 int,COL2 varchar(200))和(data_compression =行);
如果需要更改分区的压缩选项,可以使用以下语句:
复制代码代码如下:修改表数据重建分区= 1(数据压缩=页);
如果分区表需要为每个分区设置不同的压缩选项,你可以使用下面的语句:(SQL Server 2008为数据仓库的应用使用不同的分区不同的压缩选项是非常重要的,因为数据仓库的事实表通常有一个或几个热分配这些分区数据经常需要更新,以避免数据压缩数据的更新处理负载,额外的压缩选项可以关闭这些分区)
复制代码如下:创建表partitionedtable(col1 int,COL2 varchar(200))
在PS1(COL1)
(与
data_compression =排分区(1),
在分区data_compression =页(2到4));
如果您正在为索引设置压缩选项,您可以使用它:
复制代码代码如下所示:
创建数据索引ix_testtable_col1(COL1)与(data_compression =行);
如果您修改索引的压缩选项,您可以使用它:
复制代码代码如下:改变数据指标ix_testtable_col1重建(data_compression =行);
SQL Server 2008还提供了一个sp_estimate_data_compression_savings存储过程来帮助DBA估计物体的大小压缩选项后激活。
数据压缩原理:
对于行压缩,SQL Server 2008使用以下三种方法来节省存储空间:
与记录相关联的元数据开销减少了。这个元数据是关于列、列长度和偏移量的信息。在某些情况下,元数据开销可能比旧存储格式大。
它采用可变长度的存储格式为数值类型(例如,整数,小数,浮)和数值类型(例如,日期时间和金钱)。
它使用不存储空字符的可变长度格式存储固定长度字符串。
对于页面压缩,SQL Server 2008在数据页上轮流使用。
1。线压缩
2。前缀压缩
三.字典压缩
使用数据压缩的考虑:
虽然SQL Server 2008的数据压缩功能非常有价值,但仍存在一些值得注意的问题:
数据压缩功能仅在企业和开发版本中可用。
数据压缩允许数据页存储更多的数据行,但它不会改变单线数据的最大8060字节的限制。
当在已设置的表上创建群集索引时,集群索引默认地默认为原始表上的压缩选项。
在没有集群索引的表上设置页压缩时,仅在以下情况下才实现页压缩的实际效果:
1。数据使用大容量插入语法添加到表中。
2。数据使用插入到表中添加到…与(TABLOCK)语法
三.执行修改表…用页压缩选项重建命令
更改表中没有聚集索引的压缩选项会导致表上所有非聚集索引被重建,因为这些聚集索引的数据行地址已经更改。
更改压缩选项所需的临时空间大小与创建索引所需的空间相同。因此,对于分区表,我们可以逐一设置压缩选项,以减少临时空间的需求压力。
因为SQL Server 2008的数据压缩技术是vardecimal SQL Server 2005 SP2的超集,因此设置数据压缩不需要保留vardecimal。当然,SQL Server 2008为保持向后兼容性,在目前的版本中仍然保留vardecimal SQL Server 2008,但是下一个版本,可以被抛弃,vardecimal选项,那么这些设置应该尽快转变到数据库的数据压缩设置。
SQL Server 2008的压缩选项是在存储引擎层的工作,为这一特征的其他部分SQL Server是透明的,所以当我们使用大容量数据到SQL服务器的负载方式外,将大大增加CPU的工作负荷,同时将出口到外部表数据的压缩文件时,可能消耗更多的比原来的很多空间。
我相信,在这里,朋友们对SQL Server 2008中的数据压缩技术有了更全面的了解。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。