SQL Server教程 - SQL Server 压缩(Compression)
2022/8/9 2:25:55
本文主要是介绍SQL Server教程 - SQL Server 压缩(Compression),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
更新记录
转载请注明出处:https://www.cnblogs.com/cqpanda/p/16556436.html
2022年8月7日 发布。
2022年8月6日 从笔记迁移到博客。
SQL Server 压缩(Compression)
使用压缩的原因
减少磁盘空间
改善性能
缩短查询的请求时间
注意:只有SQL Server企业版才支持压缩
不使用压缩的原因
如果保存在内存中的数据是压缩的,选中该数据,必须先解压缩在操作
如何使用压缩
频繁更新的数据应使用行压缩
频繁插入新数据到表尾的表应使用页压缩
只是进行读取操作的数据应使用页压缩
与压缩比例关联的因素
数据类型
数据特点
比如数据表的索引、数据表的类型
SQL Server支持以下级别压缩
堆表(未建立聚集索引的表)
带有聚集索引的表
非聚集索引
索引视图
分区
压缩说明
行压缩说明
压缩将改变数据的物理存储,但不改变数据的逻辑结构
行压缩的过程:
识别每一列的数据类型,转为可变长度
最后将存储空间的请求量减少的到实际需求
压缩后,增加了每一页上的存储数据量
压缩后,减少元数据量
比如:某一列的数据类型是smallint,默认状态下系统分配2个字节
但实际中,只是用了1个字节的空间,如果在表上启用压缩,就可以进行按需分配
页压缩说明
页压缩执行额外的操作来增强行压缩
主要操作:行压缩、前缀压缩、字典压缩
启用表或索引压缩(行、页)-使用SSMS
进入表后,选择存储
点击【下一步】
勾选【对所有分区进行压缩】,选择【Row】
按需求选择你需要的方案
启用非聚集索引压缩(行、页)-使用SSMS
选中指定的索引,进入压缩页面
勾选指定的参数
选择你需要的方案
创建表时启用表压缩-使用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
进入指定的表或索引 的压缩页面
选定具体参数后,点击【计算】
查看压缩效果-使用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'
这篇关于SQL Server教程 - SQL Server 压缩(Compression)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-08Docker下的SqlServer发布订阅启用
- 2023-06-05Docker安装MS SQL Server并使用Navicat远程连接
- 2023-05-25深入浅出 SQL Server CDC 数据同步
- 2023-05-12通过空间占用和执行计划了解SQL Server的行存储索引
- 2023-04-24以SQLserver为例的Dapper详细讲解
- 2022-11-30SQL server高级函数查询
- 2022-11-26SQL SERVER数据库服务器CPU不能全部利用原因分析
- 2022-11-21SQL Server 时间算差值/常用函数
- 2022-11-20调试Archery连接SQL Server提示驱动错误
- 2022-10-22SQL Server 完整、差异备份+完整、差异还原(详细讲解,规避错误)