广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >SQLServer数据表压缩
  • 229
分享到

SQLServer数据表压缩

SQLServer表压缩 2022-11-13 08:11:22 229人浏览 泡泡鱼
摘要

概述 SQL Server的主要性能取决于磁盘I/O效率,sql Server 。2008提供了数据压缩功能来提高磁盘I/O效率。表压缩意味着减小数据的磁盘占有量,所以压缩可以用在堆

概述

SQL Server的主要性能取决于磁盘I/O效率,sql Server 。
2008提供了数据压缩功能来提高磁盘I/O效率。
表压缩意味着减小数据的磁盘占有量,所以压缩可以用在堆表、聚集索引的表、非聚集索引的表、索引视图、分区表上。

可压缩的数据类型

smallint、int、Bigint、decimal、numeric、real、float、money、smallmoeny、bit、datetime、datetime2、datetimeoffset、char、nchar、binary、rowversion。

SQLServer中有两种压缩类型:数据与备份

行压缩

压缩会改变数据的物理存储方式,但不需要对代码做任何修改。
行压缩流程:首先识别表中每一列的数据类型,然后转换为可变长度,最后将存储空间的请求总量减少到实际需求量。
如:固定长度的类型int、char、nchar等,在数据页中以不定长度的方式存储(存储真实数据长度)。

1、SSMS行压缩

表->右键->存储->管理压缩->对所有分区使用相同压缩类型->右侧 选择row->立即执行->完成。

image

ALTER TABLE [dbo].[AnnexFileList] REBUILD PARTITION = ALL
WITH ( DATA_COMPRESSION = ROW );

在压缩堆表或聚集索引时并不同时包含非聚集索引,因此需要另外单独对非聚集索引进行操作。

索引->右键->存储->管理压缩->对所有分区使用相同压缩类型->右侧 选择row->立即执行->完成。

image

ALTER INDEX [PK_ANNEXFILELIST]
    ON [dbo].[AnnexFileList]   REBUILD PARTITION = ALL
    WITH ( DATA_COMPRESSION = ROW );

2、T-SQL行压缩

--在现有表进行压缩
--聚集
alter table ceshi rebuild with(data_compression=row)

--非聚集
alter index new_name on ceshi rebuild with(data_compression=row) 

--在创建表时进行压缩
create table yasuo
(
    id int primary key,
    name varchar(50),
    mail varchar(50)
)
with (data_compression=row)

创建时指定行压缩方式,这时并未发生改变。只要数据插入表中,该行即被压缩。

页压缩

页压缩通过执行额外的一些步骤增强了行压缩的功能。

页压缩步骤:行压缩、前缀压缩、字典压缩。

首先对于每一列将确定一个值,此值可以减少每一列中值的存储空间。一旦确定该值后,每一列的前缀值的行将被存储在页头中。所有的信息称为压缩信息,存储在页头之下。标识的值(前缀值)位于没列中,将由指向压缩信息部分中对应值的引用进行替换。
下一步字典压缩,搜索整个页面而非单个列,重复值被移动到页头的压缩信息部分,取而代之的是指向该值的引用。

在SSMS中页压缩步骤与行压缩步骤一致,只是选择压缩方式为Page。T-SQL中将row改成page即可。

需要注意

1、如果保留在内存中的数据是压缩的,一旦被选中,则必须先进行解压缩。

2、在插入新行时,数据也是行或页压缩的。

3、当更新或删除时,行压缩对象保留当前的压缩级别。但是页压缩可能需要重新计算,取决于发生变化的数据量。

用哪种压缩

  • 需要频繁更新的对象应该使用行压缩。
  • 只是执行读取操作的应该使用页压缩。

到此这篇关于SQL Server数据表压缩的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: SQLServer数据表压缩

本文链接: https://www.lsjlt.com/news/149213.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQLServer数据表压缩
    概述 SQL Server的主要性能取决于磁盘I/O效率,SQL Server 。2008提供了数据压缩功能来提高磁盘I/O效率。表压缩意味着减小数据的磁盘占有量,所以压缩可以用在堆...
    99+
    2022-11-13
    SQL Server 表压缩
  • sqlserver怎么压缩备份数据库
    在SQL Server中,可以通过以下步骤压缩备份数据库:1. 打开SQL Server Management Studio(SSM...
    99+
    2023-10-12
    sqlserver 数据库
  • sqlserver怎么压缩数据库空间
    在SQL Server中,可以通过以下几种方式来压缩数据库空间:1. 使用压缩选项重建索引:通过使用 ALTER INDEX 语句,...
    99+
    2023-08-25
    sqlserver 数据库
  • 详解mysql表数据压缩
    目录【第一部分】一、表压缩概述:二、使用表的压缩三、InnoDB表的压缩优化1、何时用压缩表2、数据特性及压缩率3、数据库压缩和应用程序压缩4、工作负载特性和压缩率四、INNODB表...
    99+
    2022-11-13
    mysql表数据压缩 mysql表压缩
  • redis数据结构之压缩列表
    目录压缩列表是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么就是小整数,要么就是长度比较短的字符串,redis就会使用压缩列表来做列表键的底层实现 当...
    99+
    2022-11-13
    redis数据结构 redis压缩列表
  • 数据库中如何实现表压缩
    这篇文章给大家分享的是有关数据库中如何实现表压缩的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 alter table table_name COMP...
    99+
    2022-10-18
    数据库
  • 数据压缩 : 简要
    1. 决定压缩哪些对象通过sp_estimate_data_compression_savings 评估在ROW和PAGE压缩时分别节省的空间量。表包含如下数据模式时,会有较好的压缩效果:数字类型的列和固定...
    99+
    2022-10-18
    compression sql server 简要
  • 详解redis数据结构之压缩列表
    详解redis数据结构之压缩列表 redis使用压缩列表作为列表键和哈希键的底层实现之一。当一个列表键只包含少量的列表项,并且每个列表项都是由小整数值或者是短字符串组成,那么redis就会使用压缩列表存储...
    99+
    2022-06-04
    数据结构 详解 列表
  • oracle 11G表压缩
      最近一套生产库表空间一直告警在90%以上,但的磁盘硬件资源又不足,整个库已经达到26T。库里存储了近4年的数据,与业务沟通说历史数据基本上不会做操作,但是又不能归档,所以想到了压缩表来节省表空...
    99+
    2022-10-18
    compress 表压缩
  • PHP开发缓存的数据压缩与解压缩
    PHP是一种广泛应用于Web开发的脚本语言,经常用于处理大量数据和文件。在处理大量数据时,数据压缩和解压缩是一项非常重要的技术,能够减小数据传输量,节省网络带宽,加快数据传输速度。本文将介绍在PHP开发中如何进行数据的压缩和解压缩,并提供具...
    99+
    2023-11-08
    缓存 PHP 压缩/解压缩
  • Node.js实现压缩与解压数据
    Node.js中提供了一个很好的库Zlib来压缩解压数据。 一、压缩缓冲区 Zlib中有下面几个函数方便解压缩缓冲区. gzip/gunzip:标准gzip压缩.deflate/in...
    99+
    2022-11-13
    Node.js 压缩数据 解压数据
  • Redis如何实现数据压缩与解压缩功能
    Redis是一款高性能的内存数据库,常用于缓存和数据存储。在数据存储方面,Redis提供了压缩和解压缩功能,可以有效地节省内存空间,提高数据存储和传输效率。本文将介绍Redis如何实现数据压缩和解压缩功能,并给出具体代码示例。Redis中的...
    99+
    2023-11-07
    redis 数据压缩 解压缩
  • android中gzip数据压缩与网络框架解压缩
    目录theme: smartblue开GZIP有什么好处?Java中gzip压缩和解压实现字节流压缩:字节流解压:网络框架解压缩(gzip)使用步骤:构造消息发送类(post调用的对...
    99+
    2022-11-13
    android gzip数据压缩解压缩 android gzip 网络框架解压
  • sqlserver收缩数据库、收缩数据文件的操作
    一些实际工作中的总结 1、实际工作中收缩数据文件的情况比收缩库的情况多,不建议直接收缩数据库 2、收缩很容易出现等待,收缩会话对应sys.sysprocesses的字段waitresource值类似为15...
    99+
    2022-10-18
    sqlserver 操作 收缩
  • 利用JAVA API函数实现数据的压缩与解压缩(转)
    本文通过对数据压缩算法的简要介绍,然后以详细的示例演示了利用java.util.zip包实现数据的压缩与解压,并扩展到在网络传输方面如何应用java.util.zip包现数据压缩与解压综述许多信息资料都或多或少的包含一些多余的数据。通常会导...
    99+
    2023-06-03
  • SQLServer2008中数据如何压缩
    本篇内容主要讲解“SQLServer2008中数据如何压缩”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQLServer2008中数据如何压缩”吧!  要启用...
    99+
    2022-10-18
    sqlserver2008
  • sqlserver 数据库收缩的方法
    1.右键-属性-选项-简单模式 2.右键-任务-收缩-文件 3.右键-任务-收缩-数据库 在SQL Server中经常遇到事务日志变大的情况,除了将数据库设置为“自动收缩”外,还可以使用下面的SQL命...
    99+
    2022-10-18
    sqlserver 方法 收缩
  • Innodb 表的压缩方式
    innodb 目前支持两种文件格式(innodb_file_format) Antelope 和Barracuda 5.6 默认的是 Antelope  (羚羊) ,有两种“数据表格式...
    99+
    2022-10-18
    innodb 方式 压缩
  • Oracle如何修改压缩数据
    这篇文章将为大家详细讲解有关Oracle如何修改压缩数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我们将看到只有在直接路径加载、CTAS(create table a...
    99+
    2022-10-18
    oracle
  • MySQL 5.6的表如何压缩
    MySQL 5.6的表如何压缩,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。设置mysql innodb 表的压缩:第一,my...
    99+
    2022-10-18
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作