磁盘分区时,磁盘中有一些文件,用win7自带的进行磁盘分区,压缩卷时会损伤文件吗

磁盘分区时,磁盘中有一些文件,用win7自带的进行磁盘分区,压缩卷时会损伤文件吗,第1张

不会。

解释:压缩卷实际上是进行的

磁盘整理

,之后找到硬盘中的最大连续空白分区。也就是说,磁盘中的文件实际上还会一直存在的,并不会受到影响。所以建议在

磁盘分区

之前,最好做下磁盘整理(在磁盘上

右击

,属性,之后

碎片整理

下),这样就可以把一些微小碎片整合到其余的连续位置,增大连续磁盘空白位置,也就可以更高效的制作压缩卷了。

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

未创建聚簇索引的表

创建聚簇索引的表

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

索引视图

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

为什么需要数据压缩

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

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

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

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

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

如何使用数据压缩

SQL Server 中的压缩选项可以在创建表或索引时通过Option进行设置 例如          CREATE TABLE TestTable (col int col varchar( )) WITH (DATA_PRESSION = ROW);

如果需要改变一个分区的压缩选项 则可以用以下语句          ALTER TABLE TestTable REBUILD PARTITION = WITH (DATA PRESSION = PAGE);

如果需要为分区表的各个分区设置不同的压缩选项 可以使用以下的语句 (SQL Server 可以对不同的分区使用不同的压缩选项 这一点对于数据仓库应用是非常重要的 因为数据仓库的事实表通常都会有一个或数个热分区 这些分区中的数据经常需要更新 为了避免数据压缩给这些分区上的数据更新带来额外的处理载荷 可以对这些分区关闭压缩选项)          CREATE TABLE PartitionedTable (col int col varchar( ))        ON PS (col )        WITH (        DATA_PRESSION = ROW ON PARTITIONS( )         DATA_PRESSION = PAGE ON PARTITION( TO ));

如果是为某个索引设置压缩选项的话 可以使用

         CREATE INDEX IX_TestTable_Col ON TestTable (Col ) WITH (DATA_PRESSION = ROW);

如果是修改某个索引的压缩选项 可以使用          ALTER INDEX IX_TestTable_Col ON TestTable REBUILD WITH (DATA_PRESSION = ROW);

SQL Server 同时还提供了一个名为sp_estimate_data_pression_savings存储过程帮助DBA估计激活压缩选项后对象尺寸

数据压缩是怎样工作的

对于行压缩 SQL Server 采用以下三种方法来节省存储空间

减少了与记录相关联的元数据开销 此元数据为有关列 列长度和偏移量的信息 在某些情况下 元数据开销可能大于旧的存储格式

它对于数值类型(例如 integer decimal和float)和基于数值的类型(例如 datetime和money)使用可变长度存储格式

它通过使用不存储空字符的可变长度格式来存储定长字符串

对于页面压缩 SQL Server 则是在一张数据页面上依次采用

行压缩

前缀压缩

字典压缩

配置数据压缩功能需要注意的

尽管SQL Server 的数据压缩功能非常有价值 但是仍然需要注意一些问题

数据压缩功能仅在企业版和开发版中可用

数据压缩可以让一张数据页存储更多的数据行 但是并不能改变单行数据最长 字节这一限制

在一张已经设置了数据压缩的表上创建聚簇索引时 聚簇索引默认继承原表上的压缩选项

在未设置聚簇索引的表上设置页面压缩时 只有以下情况才会获得页面压缩的实际效果

数据使用BULK INSERT语法添加到表中

数据使用INSERT INTO WITH (TABLOCK)语法添加到表中

执行带有页面压缩选项的ALTER TABLE REBUILD命令

在未设置聚簇索引的表上更改压缩选项 会导致该表上所有非聚簇索引都需要重建 因为这些非聚簇索引指向的数据行地址已经都发生了改变

在改变压缩选项时所需要的临时空间大小与创建索引是所需要的空间是一样的 因此对于分区表 我们可以逐个分区设置压缩选项来减少临时空间的需求压力

由于SQL Server 中数据压缩技术其实是SQL Server SP 中vardecimal技术的一个超集 因此设置了数据压缩后就没有必要保留vardecimal了 当然SQL Server 为了保持向后兼容性 在当前版本中仍然保留了vardecimal 但是SQL Server 的下一个版本及可能就会弃用vardecimal选项 因此做了这些设置的数据库应该尽早改变到数据压缩设置下

lishixinzhi/Article/program/Oracle/201311/17483

以上就是关于磁盘分区时,磁盘中有一些文件,用win7自带的进行磁盘分区,压缩卷时会损伤文件吗全部的内容,包括:磁盘分区时,磁盘中有一些文件,用win7自带的进行磁盘分区,压缩卷时会损伤文件吗、SQLServer2008中的数据压缩功能、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9597391.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存