热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

DB2面向OLTP环境的物理数据库设计:数据和索引压缩

您可以通过使用内置在DB2forLinux,UNIXandWindows数据库中的压缩功能来减少表、索引和备份映像的大小,从而减少数据所需的存储量。表和索引通常包含重复信息。这种重复可能是单独或合并的列值,也可能是列值的共同前缀,或者是在XML数据中的重复模

您可以通过使用内置在 DB2 for Linux, UNIX and Windows 数据库中的压缩功能来减少表、索引和备份映像的大小,从而减少数据所需的存储量。 表和索引通常包含重复信息。这种重复可能是单独或合并的列值,也可能是列值的共同前缀,或者是在 XML 数据中的重复模

您可以通过使用内置在 DB2 for Linux, UNIX and Windows 中的压缩功能来减少表、索引和备份映像的大小,从而减少数据所需的存储量。 表和索引通常包含重复信息。这种重复可能是单独或合并的列值,也可能是列值的共同前缀,或者是在 XML 数据中的重复模式。压缩方法可以使用短字符串或符号来代替重复的信息。 您可以使用一些压缩功能来减少存储表和索引功能所需的空间,同时也可以采用一些功能来确定压缩可以提供的节省。您还可以使用备份压缩来减少备份的大小。 DB2 Version 9.7 的大多数版本中都包含的压缩功能包括:

 值压缩
 备份压缩

以下额外的压缩功能与 DB2 存储优化特性的许可是一起提供的:

 行压缩,包括 XML 存储对象的压缩
 临时表压缩
 压缩的暂时或永久表上的索引压缩

行压缩

行压缩,有时也被称为静态压缩,它用较短的符号字符串替换在各行中重复的值模式,从而压缩数据行。 使用行压缩的主要好处是,您可以在更小的空间中存储数据,可以产生显著的存储成本节省。此外,因为您以较慢的速度使用存储,所以可以推迟额外存储空间的未来支出。 除了节省成本之外,行压缩还可以提高性能。对压缩数据的许多查询可以用更少的 I/O 操作来执行,因为每次从磁盘读取都会带来更多数据。同样,可以将更多数据缓存在缓冲池中,这会增加缓冲池命中率。然而,这里有一个权衡要考虑,数据压缩和解压需要使用额外的CPU周期。 一个表要为行压缩做好准备,有两个要求:

 您必须使用 COMPRESS YES 子句创建或修改一个表,使该表具有使用压缩功能的资格。
 您必须从将要压缩的表中建立一个值或符号的字典。根据您所使用的 DB2 数据库产品的版本,建立压缩字典的手段会有所不同。

在这两个要求得到满足后,就可以压缩在表中插入或更新的数据了。

以下是在表和索引中启用行压缩的一个简单示例:

CREATE TABLE T1 (C1 INT, C2 INT, C3 INT) COMPRESS YES
CREATE INDEX I1 ON T1(C1)
SELECT COMPRESSION FROM SYSCAT.INDEXES WHERE TABNAME=’T1’
COMPRESSION
-----------
Y
1 record(s) selected.

行压缩的良好候选者

检查您的数据库,确定数据库内的哪些表可能是压缩的候选者。最初,启用数据压缩是为了在现有的未压缩表上节省存储。稍后,数据压缩可以帮助您优化未来的存储增长。在数据库现有的表和/或预期随着时间的推移增长得更快的表中,可能会发现一些存储“难题”。

很明显,最大的表是行压缩的候选者,但千万不要忽视较小的表。如果您有数百或数千个较小的表,您可能会受益于压缩许多较小的表的聚合效果。大和小在这里是相对的。数据库的设计就决定着包含一百万或几百万个行的表是大还是小。

几百 KB 以下的小表不是良好的行压缩的候选者,因为可以实现的空间节省并不足以抵消数据压缩字典的存储需求。小表的字典大小约为 100 KB,存储在物理表数据对象中。作为一个经验法则,应该考虑压缩大小为 2 MB 或以上的小表。

只读表是非常好的压缩候选者。如果表中只有少量更新,那么该表可能是一个很好的候选者。如果某个表有大量的更新,那么该表可能不是压缩的良好候选者。读/写比例为 70/30 或更高的表是优秀的压缩候选者。 试图压缩这些表之前,先将大表分隔到它们自己的表空间中。

推荐阅读
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • macOS10.12安装win10系统教程,实现双系统安装
    本文介绍了如何在macOS10.12系统上安装win10系统,实现双系统的安装。通过使用Boot Camp助理,选取win10系统镜像并分配系统容量,然后进行安装。安装完win10系统后,安装驱动并重启系统即可完成双系统的安装。 ... [详细]
  • 在Windows 10中点击“检查更新”按钮可能让你成为微软的测试补丁的“小白鼠”。微软每月的第三、第四周会向稳定通道的用户选择性发放“C”“D”测试补丁,而那些主动点击“检查更新”的用户可能会成为这些补丁的测试对象。这些补丁主要用于测试下一个Patch Tuesday的更新内容的稳定性,也可能用于修复个性化问题。因此,用户需要小心点击“检查更新”,以免遭受不必要的风险。 ... [详细]
author-avatar
hbwgz2009
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有