`
totoxian
  • 浏览: 1080045 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

SQL SERVER 2008的数据压缩

阅读更多


一、数据库版本
数据压缩在Sql Server 2008上才支持,2005不行,并且还要是企业版。我常常忘了这一点,在2005的Studio上闹出语法错误的状况,折腾浪费了好一阵才醒悟过来。


二、压缩状况
大约可以节省20%-50%的空间,并且行压缩和页压缩有所区别。
但让我失望的是,像含有Varchar(max),xml这种字段类型的,反而似乎压缩不起什么作用。其实我觉得最需要压缩的就是它们。


三、行压缩与页压缩
行压缩是将固定长度类型存储为可变长度存储类型。页压缩除了行压缩,还有字典压缩等等。就是说,页级比行级压得更狠,更厉害。通常,表的话我采用页压缩;索引,行压缩。不为什么,想当然耳。


四、开始压缩
压缩的时候,硬盘要有空余的空间,因为压缩需要消耗额外的磁盘。比如说,我压缩一个190GB的表,大概还要额外占用90GB的空间。压缩完了以后,可以通过收缩数据库文件释放。释放了以后空间就连本带利多上一点。


非分区表页级压缩
ALTER TABLE [table1] REBUILD WITH (DATA_COMPRESSION = PAGE);
GO


分区表页级压缩
ALTER TABLE [partitiontable1]
REBUILD PARTITION = ALL
WITH
(
DATA_COMPRESSION = PAGE ON PARTITIONS(1 TO 11)
);
GO


非分区索引行级压缩
ALTER INDEX ix_id
ON table1
REBUILD WITH ( DATA_COMPRESSION = ROW ) ;
GO

分区索引行级压缩
ALTER INDEX Ix_Id ON partitiontable1
REBUILD PARTITION = ALL
WITH
(
DATA_COMPRESSION = ROW ON PARTITIONS(1 TO 16)
);
GO


五、压缩以后收缩数据库文件
DBCC SHRINKFILE ([数据库文件逻辑名], 收缩至多大(以M为单位));
GO


DBCC SHRINKFILE ([data_0], 5371);
GO


这个收缩后大小,我是先在Studio中,选中数据库,鼠标右键,在菜单中选任务,收缩,然后得到这个收缩后的最小尺寸,再抄到脚本上的。
其实帮助里面说,DBCC SHRINKFILE 不会将文件收缩到小于存储文件中的数据所需要的大小。例如,如果使用 10 MB 数据文件中的 7 MB,则带有 target_size 为 6 的 DBCC SHRINKFILE 语句只能将该文件收缩到 7 MB,而不能收缩到 6 MB。那么我们将5371写成1,岂不快哉?我没有试,可能可以。


六、经验总结
压缩和收缩分区表、分区索引消耗好多时间。有个几十G的分区表,我压缩完了以后,收缩花了2天又19个小时,是用脚本执行的,一口气不停歇。
非分区表则很快,100多G的文件,1、2小时就搞定了。


七、为什么要压缩
我觉得数据库服务器的瓶颈往往在于硬盘。象我们的服务器,8个核,平常时CPU很少上到10%,到30%已经顶天了。压缩的意义,就是将硬盘的压力转一部分到CPU,正中下怀。
另一个就是,现在我们网站功能逐渐多了以后,数据增长也很快。几年下来,数据积累相当可观,现在已经用了600多G了。

八、不要用操作系统的文件压缩

不要去使用只读用户定义文件组和只读数据库的 NTFS 压缩。结果没有压缩多少,反倒是想将数据库只读去掉,还要先解压。死未?

分享到:
评论

相关推荐

    深入解析sqlserver 2008 Microsoft SQL Server 2008 Internals

    10. **高级特性**:SQL Server 2008引入了许多新特性,如列存储索引、数据压缩、Service Broker(服务总线)以及Master Data Services(主数据服务),这些都是提升数据库功能和性能的重要工具。 本书不仅适合...

    sqlserver 2008简体中文版32位.zip

    在2008版本中,引入了改进的数据压缩技术,可以降低存储需求并提高查询性能。 2. Analysis Services:此组件用于联机分析处理(OLAP)和数据挖掘。它为企业决策支持系统提供多维数据模型和复杂分析功能。在SQL ...

    SQL Server 2008R2 数据同步.rar

    “SQL Server 2008R2 数据同步.htm”这个压缩包是我自己压缩的,里面是两个文件: (1)SQL Server 2008R2 数据同步.htm (2)SQL Server 2008 数据库同步的两种方式(发布、订阅).htm 是之前我需要把两个SQL ...

    SQL server 2008 R2数据平台运维管理解决方案

    ### SQL Server 2008 R2 数据平台运维管理解决方案 #### 一、管理挑战与需求 在当今的IT环境中,数据库管理员面临着诸多管理上的挑战。随着数据量的增长和技术的发展,这些挑战也在不断升级,包括但不限于: - **...

    SQL SERVER 2008 客户端

    9. **安全性**:SQL Server 2008 强调数据安全,提供了角色和权限管理、审计、透明数据加密等功能,确保数据在传输和存储过程中的安全性。 10. **性能监视和优化**:内置的性能监视工具如SQL Server Profiler和...

    SQLServer2008自动备份脚本

    在SQL Server 2008中,为了确保数据的安全性和防止意外丢失,设置自动备份是一项至关重要的任务。这里我们将详细探讨如何使用SQL Server自带的`sqlcmd`工具以及如何创建一个自定义的备份脚本来实现这一功能。 首先...

    SQL_Server_2008维护计划实现数据库定时自动备份

    ### SQL Server 2008 维护计划实现数据库定时自动备份详解 #### 核心概念解析 ...这一机制不仅减轻了DBA的工作负担,还确保了数据的可靠性和连续性,是SQL Server数据管理策略中不可或缺的一部分。

    JAVA连接sqlserver2008R2驱动sqljdbc4-3.0.jar

    4. **SQL Server 2008 R2**:这是Microsoft SQL Server的一个版本,支持诸多高级特性,如列存储索引、数据压缩、备份和恢复的增强,以及更强大的分析功能。 5. **使用示例**:创建Statement,执行SQL查询,并处理...

    sqlserver2008技术内幕

    此外,数据压缩也是提升存储效率的手段,SQL Server 2008提供了页压缩和行压缩两种模式。 安全性是数据库系统的关键,SQL Server 2008提供了多种安全机制,如角色、权限、登录和证书等,以确保数据的安全访问。审计...

    SQL Server 2008开发新特性系列课程(3):SQL Server 2008数据管理概述

    除了备份压缩,SQL Server 2008还支持行级和页级的数据压缩,这有助于减少存储需求,尤其是在处理大数据量时,能够显著降低I/O成本。 7. **Change Data Capture (CDC)**: CDC允许跟踪和记录数据库中的更改,提供...

    SQL Server2008(数据存储和数据类型).ppt

    要预估压缩后的大小,可以使用系统存储过程`sp_estimate_data_compression_savings`或通过SQL Server Management Studio(SSMS)的数据压缩向导进行估算。压缩可以通过T-SQL语句直接应用到表或索引,或者使用向导...

    Sql Server数据库自动全备份的脚本(带7z压缩)

    在SQL Server数据库管理中,定期备份是确保数据安全的关键步骤。本话题主要涉及如何使用脚本实现自动全备份,并结合7-Zip进行压缩,以节省存储空间和提高备份效率。以下将详细介绍相关知识点: 1. **SQL Server ...

    SQLServer2008_R2精简版_测试可用.zip

    标题中的"SQLServer2008_R2精简版_测试可用.zip"表明这是一个关于Microsoft SQL Server 2008 R2的精简版本,主要用于测试环境。SQL Server是微软公司开发的一款关系型数据库管理系统(RDBMS),广泛应用于企业级数据...

    从sqlserver同步数据到Mysql数据库

    【标题】:“从sqlserver同步数据到Mysql数据库”是一个典型的跨数据库系统数据迁移的案例。在信息技术领域,数据迁移是常见的操作,特别是在企业级应用中,可能由于业务需求、性能优化或者系统升级等原因,需要将...

    SQLServer事务日志压缩与删除的方法

    ### SQL Server 事务日志压缩与删除的方法 在SQL Server中,事务日志记录着所有对数据库所做的更改操作,这对于数据库的恢复至关重要。然而,随着数据量的增长,事务日志文件也会不断增大,这不仅会占用大量的磁盘...

    SQL Server 2008

    SQL Server 2008是微软公司推出的一款企业级关系型数据库管理系统,旨在满足下一代数据驱动应用程序的需求。该系统融入了Microsoft的数据平台愿景,旨在处理日益增长的多类型信息存储,如图片、视频、RFID数据等,...

    SQLServer2008安装图解

    其主要特性包括高级数据类型、增强的数据压缩技术、改进的查询性能以及更强大的安全性和合规性。 #### 二、安装准备 在进行SQL Server 2008的安装前,确保机器满足以下最低硬件和软件要求: - 至少1GB RAM(推荐2...

Global site tag (gtag.js) - Google Analytics