SqlServer2008实例27管理超大型表之用数据压缩减少磁盘空间使用

本文介绍了SQL Server 2008中的数据压缩特性,包括行压缩和页压缩,以及如何通过ALTER TABLE和CREATE TABLE启用它们。通过示例展示了压缩如何节省磁盘空间,并提醒在实际应用中要考虑CPU开销。
摘要由CSDN通过智能技术生成

      SQL Server 2008企业版和开发版引入了表、索引和相应分区的行级和页级压缩。

       行压缩为数值数据类型(例如,int、bigint和decimal)和固定长度类型(比如money和datetime)使用可变长度的存储。行压缩也为定长字符串使用可变长度存储格式,且不存储尾部的空字符、NULL和0值。
    页压缩包含行压缩,以及前缀压缩和字典压缩。

    前缀压缩包括在行的列中存储多次的列前缀值的存储,并引用单个的值替换掉多余的前缀。

    字典压缩发生在前缀压缩后,首先查找数据页上任意位置的重复数据值(不只是前缀),然后使用指向单个值的指针替换多余的重复值。
    使用CREATE TABLE和ALTER TABLE来启用行压缩与页压缩。在第一个示例中,将为新表启用行压缩。指定DATA_COMPRESSION表选项并从NONE、ROW或PAGE中选择其一来完成它。

USE AdventureWorks
GO

CREATE TABLE dbo.ArchiveJobPosting
(
	JobPostingID int NOT NULL IDENTITY(1,1) PRIMARY KEY CLUSTERED,
	CandidateID int NOT NULL,
	JobDESC char(2000) NOT NULL
)
WITH (DATA_COMPRESSION=ROW)

    执行ALTER TABLE...REBUILD WITH来重新配置既有表的压缩选项。例如,如下命令关闭刚刚创建的表的压缩选项:

ALTER TABLE dbo.ArchiveJobPosting
REBUILD WITH
(DATA_COMPRESSION=NONE)

    下一步,将向表中添加垃圾数据,演示压缩带来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值