一、数据库版本
数据压缩在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 压缩。结果没有压缩多少,反倒是想将数据库只读去掉,还要先解压。死未?
分享到:
相关推荐
10. **高级特性**:SQL Server 2008引入了许多新特性,如列存储索引、数据压缩、Service Broker(服务总线)以及Master Data Services(主数据服务),这些都是提升数据库功能和性能的重要工具。 本书不仅适合...
在2008版本中,引入了改进的数据压缩技术,可以降低存储需求并提高查询性能。 2. Analysis Services:此组件用于联机分析处理(OLAP)和数据挖掘。它为企业决策支持系统提供多维数据模型和复杂分析功能。在SQL ...
“SQL Server 2008R2 数据同步.htm”这个压缩包是我自己压缩的,里面是两个文件: (1)SQL Server 2008R2 数据同步.htm (2)SQL Server 2008 数据库同步的两种方式(发布、订阅).htm 是之前我需要把两个SQL ...
### SQL Server 2008 R2 数据平台运维管理解决方案 #### 一、管理挑战与需求 在当今的IT环境中,数据库管理员面临着诸多管理上的挑战。随着数据量的增长和技术的发展,这些挑战也在不断升级,包括但不限于: - **...
9. **安全性**:SQL Server 2008 强调数据安全,提供了角色和权限管理、审计、透明数据加密等功能,确保数据在传输和存储过程中的安全性。 10. **性能监视和优化**:内置的性能监视工具如SQL Server Profiler和...
在SQL Server 2008中,为了确保数据的安全性和防止意外丢失,设置自动备份是一项至关重要的任务。这里我们将详细探讨如何使用SQL Server自带的`sqlcmd`工具以及如何创建一个自定义的备份脚本来实现这一功能。 首先...
### SQL Server 2008 维护计划实现数据库定时自动备份详解 #### 核心概念解析 ...这一机制不仅减轻了DBA的工作负担,还确保了数据的可靠性和连续性,是SQL Server数据管理策略中不可或缺的一部分。
4. **SQL Server 2008 R2**:这是Microsoft SQL Server的一个版本,支持诸多高级特性,如列存储索引、数据压缩、备份和恢复的增强,以及更强大的分析功能。 5. **使用示例**:创建Statement,执行SQL查询,并处理...
此外,数据压缩也是提升存储效率的手段,SQL Server 2008提供了页压缩和行压缩两种模式。 安全性是数据库系统的关键,SQL Server 2008提供了多种安全机制,如角色、权限、登录和证书等,以确保数据的安全访问。审计...
除了备份压缩,SQL Server 2008还支持行级和页级的数据压缩,这有助于减少存储需求,尤其是在处理大数据量时,能够显著降低I/O成本。 7. **Change Data Capture (CDC)**: CDC允许跟踪和记录数据库中的更改,提供...
要预估压缩后的大小,可以使用系统存储过程`sp_estimate_data_compression_savings`或通过SQL Server Management Studio(SSMS)的数据压缩向导进行估算。压缩可以通过T-SQL语句直接应用到表或索引,或者使用向导...
在SQL Server数据库管理中,定期备份是确保数据安全的关键步骤。本话题主要涉及如何使用脚本实现自动全备份,并结合7-Zip进行压缩,以节省存储空间和提高备份效率。以下将详细介绍相关知识点: 1. **SQL Server ...
标题中的"SQLServer2008_R2精简版_测试可用.zip"表明这是一个关于Microsoft SQL Server 2008 R2的精简版本,主要用于测试环境。SQL Server是微软公司开发的一款关系型数据库管理系统(RDBMS),广泛应用于企业级数据...
【标题】:“从sqlserver同步数据到Mysql数据库”是一个典型的跨数据库系统数据迁移的案例。在信息技术领域,数据迁移是常见的操作,特别是在企业级应用中,可能由于业务需求、性能优化或者系统升级等原因,需要将...
### SQL Server 事务日志压缩与删除的方法 在SQL Server中,事务日志记录着所有对数据库所做的更改操作,这对于数据库的恢复至关重要。然而,随着数据量的增长,事务日志文件也会不断增大,这不仅会占用大量的磁盘...
SQL Server 2008是微软公司推出的一款企业级关系型数据库管理系统,旨在满足下一代数据驱动应用程序的需求。该系统融入了Microsoft的数据平台愿景,旨在处理日益增长的多类型信息存储,如图片、视频、RFID数据等,...
其主要特性包括高级数据类型、增强的数据压缩技术、改进的查询性能以及更强大的安全性和合规性。 #### 二、安装准备 在进行SQL Server 2008的安装前,确保机器满足以下最低硬件和软件要求: - 至少1GB RAM(推荐2...