ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SQL Server教程 - SQL Server 压缩(Compression)

2022-08-07 08:31:17  阅读:254  来源: 互联网

标签:COMPRESSION 启用 压缩 Server 索引 SQL DATA Compression


更新记录
转载请注明出处:https://www.cnblogs.com/cqpanda/p/16556436.html
2022年8月7日 发布。
2022年8月6日 从笔记迁移到博客。

SQL Server 压缩(Compression)

使用压缩的原因

减少磁盘空间

改善性能

缩短查询的请求时间

注意:只有SQL Server企业版才支持压缩

不使用压缩的原因

如果保存在内存中的数据是压缩的,选中该数据,必须先解压缩在操作

如何使用压缩

频繁更新的数据应使用行压缩

频繁插入新数据到表尾的表应使用页压缩

只是进行读取操作的数据应使用页压缩

与压缩比例关联的因素

数据类型

image

数据特点

比如数据表的索引、数据表的类型

SQL Server支持以下级别压缩

堆表(未建立聚集索引的表)

带有聚集索引的表

非聚集索引

索引视图

分区

压缩说明

行压缩说明

压缩将改变数据的物理存储,但不改变数据的逻辑结构

行压缩的过程:

​ 识别每一列的数据类型,转为可变长度

最后将存储空间的请求量减少的到实际需求

压缩后,增加了每一页上的存储数据量

压缩后,减少元数据量

比如:某一列的数据类型是smallint,默认状态下系统分配2个字节

但实际中,只是用了1个字节的空间,如果在表上启用压缩,就可以进行按需分配

页压缩说明

页压缩执行额外的操作来增强行压缩

主要操作:行压缩、前缀压缩、字典压缩

启用表或索引压缩(行、页)-使用SSMS

进入表后,选择存储
image

点击【下一步】
image

勾选【对所有分区进行压缩】,选择【Row】
image

按需求选择你需要的方案
image

启用非聚集索引压缩(行、页)-使用SSMS

选中指定的索引,进入压缩页面
image

勾选指定的参数
image

选择你需要的方案
image

创建表时启用表压缩-使用T-SQL

CREATE TABLE [表名]
(
)
WITH (DATA_COMPRESSION = ROW);

修改表使表启用表压缩-使用T-SQL

ALTER TABLE [表名]
REBUILD WITH(DATA_COMPRESSION = ROW);

修改表启用索引压缩(行)-使用T-SQL

ALTER INDEX 索引名
ON [表名]
REBUILD WITH(DATA_COMPRESSION = ROW);

实例:

USE PandaDatabase;
GO
ALTER INDEX PK__PandaTab__3214EC07FAF090D4
ON [PandaTable]
REBUILD WITH(DATA_COMPRESSION = ROW);

创建表时启用页压缩-使用T-SQL

CREATE TABLE [表名]
(

)
WITH (DATA_COMPRESSION = PAGE);

修改表时启用页压缩-使用T-SQL

ALTER TABLE [PandaTable3]
REBUILD WITH (DATA_COMPRESSION = PAGE);

修改表启用索引压缩(页)-使用T-SQL

ALTER INDEX [索引名]
ON [表名]
REBUILD (DATA_COMPRESSION = PAGE);

查看压缩效果-使用-SSMS

进入指定的表或索引 的压缩页面
image

选定具体参数后,点击【计算】
image

查看压缩效果-使用T-SQL

EXEC sp_estimate_data_compression_savings
    @schema_name = '',
    #object_name = '',
    @index_id = 1,
    @partition_number = NULL,
    @data_compression = 'row'

实例:

EXEC sp_estimate_data_compression_savings
    @schema_name = 'dbo',
    @object_name = PandaTable,
    @index_id = 1,
    @partition_number = NULL,
    @data_compression = 'row'

标签:COMPRESSION,启用,压缩,Server,索引,SQL,DATA,Compression
来源: https://www.cnblogs.com/cqpanda/p/16556436.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有