DB2面向OLTP环境的物理数据库设计:表空间和缓冲池

在设计表空间和物理设备上的容器位置时,我们的目标是最大限度地提高 I/O 的并行度,增加缓冲区利用率和缓冲池命中率。为了实现这一目标,您需要透彻了解数据库设计和应用程序。

了解表空间和缓冲池的工作原理以及它们影响数据库的整体性能的方式,这可以帮助您确定一些问题,例如,将两张表分隔到不同的设备是否会导致并行 I/O,或者是否应在一个单独的表空间中创建一个表,使该表可以被完全缓冲。 您的设计中要考虑的两个主要存储领域是:

1. 表空间。表空间的类型和设计可以决定对该表空间所执行的 I/O 效率。

2. 缓冲池。大多数页面数据操作都在缓冲池中发生,配置缓冲池是最重要的一个调优领域。

面向 OLTP ">工作负载的表空间设计

数据库管理器在您的环境中管理的工作负载类型显著影响了所使用的表空间类型的选择,以及指定的页面大小。DB2 数据库支持表空间的多种页面大小,如 4 KB、8 KB、16 KB 和 32 KB。 DB2 数据库可以选择的表空间有三种类型:

 由自动存储器管理的表空间。
 由数据库管理的表空间。也称为数据库管理的空间 (DMS)。
 由系统管理的表空间。也称为系统管理的空间 (SMS)。

OLTP 工作负载的特点是需要随机访问数据的事务。OLTP 事务往往涉及频繁的插入或更新活动,以及通常返回小数据集的查询。当表空间访问是随机访问并涉及一个或几个页面时,预取不太可能发生。在这种情况下,使用设备容器的 DMS 表空间性能最好。如果不需要最高性能,那么具有文件容器的 DMS 表空间(或 SMS 表空间)也是 OLTP 工作负载的合理选择。在 FILE SYSTEM CACHING 关闭的情况下,使用有文件容器的 DMS 表空间的性能水平可以与 DMS 原始表空间容器相媲美。

若表空间的 FILE SYSTEM CACHING 关闭,那么数据库管理器会根据底层文件系统的支持,在并发 I/O (CIO) 和直接 I/O (DIO) 之间进行选择。大多数操作系统和文件系统都支持 DIO 或 CIO。CIO 是增强版本的 DIO,提供了比 DIO 更好的性能。像原始设备一样,CIO 或 DIO 文件系统容器会忽略文件系统的缓冲区。但和原始设备不同的是,它们更易于管理。

从 DB2 Version 9.5 开始,NO FILE SYSTEM CACHING 设置在 DIO/CIO 可用的文件系统是新数据库的默认设置。如果从 Version 9.1 数据库进行迁移,请考虑该项变更的影响。

由于预计很少或根本没有连续 I/O,所以 CREATE table space 语句上的 EXTENTSIZE 和 PREFETCHSIZE 参数的设置对 I/O 效率不会产生重大影响。CREATE table space 语句上的 PREFETCHSIZE 参数值应该被设置为 EXTENTSIZE 参数值乘以设备容器的数量。另外,您还可以将预取大小指定为 -1,数据库管理器会自动选择一个合适的预取大小。此设置允许数据库管理器并行从所有容器中执行预取操作。如果容器数量更改,或需要增强或减少预取的积极性,请使用 ALTER table space 语句相应地修改 PREFETCHSIZE 值。 表空间的页面大小 对于执行随机行读写操作的 OLTP 应用程序,请使用较小的页面大小,因为它不会用不想要的行来浪费缓冲池空间。不过,页面大小选择应考虑以下的重要方面。

 行大小大于页面大小。在这种情况下,您必须使用较大的页面大小。在考虑临时表空间的大小时,请记住,有些 SQL 操作(如,联接)可能返回一个不适合表空间页面大小的结果行。因此,您至少应该有一个临时表空间的页面大小为 32 KB。

 因为选择了较大的页面大小,所以磁盘上的密度更高。例如,一个 4 KB 页面大小的表空间只可以存储一个 2100 字节的行,这浪费了几乎一半的空间。然而,如果在 32 KB 页面大小的表空间中存储一个行,那么可以大大减少这种浪费。这种方法的缺点是,可能导致更高的缓冲池存储成本或更高的 I/O 成本。在可以负担其存储成本的情况下,选择最大的页面大小。

表空间中的数据放置 以下建议是表空间的数据放置的一般性建议:

 在相同的表空间中创建需要一起恢复的数据库对象,以实现更简单的备份和恢复功能。如果您有一组经常被查询的数据库对象(比如,表和索引),您可以使用一个 CREATE 或 ALTER TABLESPACE 语句,将它们所驻留的表空间指定到一个缓冲池。

 分配一个缓冲池供临时表空间单独使用,以提高排序或联接等活动的性能。为每个页面大小创建一个系统临时表空间。DB2 数据库管理器使用内部算法,根据缓冲池的大小选择临时表空间。使用 SMS 表空间作为临时表空间。

 对于很少访问的数据,或者需要随机访问大表的应用程序,定义较小的缓冲池。在这些情况下,数据在缓冲池中的保存时间并不需要超过单个查询的时间。

时间: 2014-12-19

DB2面向OLTP环境的物理数据库设计:表空间和缓冲池的相关文章

DB2面向OLTP环境的物理数据库设计:数据库操作和维护

在数据库系统进入生产环境之后,工作重点会转向对数据库系统的日常维护.日常运营方面包括性能管理.问题诊断和维护,它们必须继续满足业务http://www.aliyun.com/zixun/aggregation/14189.html">服务水平协议. 面向 OLTP 环境的物理数据库设计应包括运营和维护任务的时间表.本节提供了此类活动的总结. 恢复策略 作为 RAS 整体策略的一部分,恢复策略在满足您的 RAS 目标中发挥着重要作用.虽然事实上在许多层次上都存在冗余,但在定义恢复点目标 (R

DB2面向OLTP环境的物理数据库设计:表

DB2 数据库将数据存储在表中.有几种类型的表可以存储永久性数据,如多维集群表.分区表和范围集群表.除了用于存储永久性数据的表之外,也有一些表可用来展示结果.汇总表.临时表. 根据数据的显示形式和事务类型,您可能会找到一个表类型,提供可以为您的环境优化存储和查询性能的特定功能. 选择合适的表类型 表类型的选择取决于业务和应用程序的需求.表中存储的数据的性质和查询的性能要求.下节描述了每种表类型适合在何时使用. 基表 基表可以保存永久性数据.DB2 数据库的基表有以下几种类型: 常规表 有索引的常

DB2面向OLTP环境的物理数据库设计:数据类型

为一个数据库设计表,这涉及到选择一个合适的http://www.aliyun.com/zixun/aggregation/14208.html">数据模型和数据类型.数据类型是一个列属性定义,它指示了应该将什么类型的数据存储在一个表列中. 根据所存储的数据的性质小心选择正确的数据类型,这有助于最大限度地减少存储需求. 最大限度地减少数据行消耗的空间,这有助于将更多行放在一个数据页面中.如果一个数据页面中有更多的行,那么这样可以提高缓冲池命中率,减少 I/O 成本,并实现更好的查询性能.DB

DB2面向OLTP环境的物理数据库设计:查询设计

在最基本的层面,包括选择.插入.更新和删除在内的 SQL 操作是应用程序与 DB2 数据库进行交互的方式.应用程序的总体性能和体验受到该应用程序所用的 SQL 操作的影响. 设计.维护.监视和调优 SQL 查询的完整处理超出了本文的范围.然而,我们从较高层次概述了查询设计的工具和一般准则,因为查询设计和物理数据库设计彼此密切相关. 大多数物理数据库设计的特征对 SQL 语句并不明显,但为了更好地使用 DB2 特性,在编写查询时需要考虑到数据库的物理特征,如索引.例如,使用范围分区表时,选择查询即

DB2面向OLTP环境的物理数据库设计:数据库事务日志

数据库事务日志对于数据库恢复至关重要,也是设计高度可用的数据库解决方案的一个重要组成部分. 数据库日志使得从故障中恢复成为可能.它们还可以在 HADR 环境中同步主数据库和备用数据库. DB2 对每个数据库使用一组独立的日志文件. 所有数据库都有与自己有关联的日志.这些日志保留数据库变更的记录.如果数据库需要还原到最后一次完整离线备份之前的某个点,日志需要将数据前滚到故障点.DB2 数据库支持两种类型的数据库的日志:循环日志和归档日志. 循环日志 循环日志仅支持崩溃恢复,也就是说,如果 DB2

DB2面向OLTP环境的物理数据库设计:数据建模

收集需求并创建逻辑模型,这是良好的物理数据库设计的关键. 数据建模的第一步是收集需求.该步骤涉及识别需要维护的关键业务工件.数据和信息.这些业务工件被称为实体.对于http://www.aliyun.com/zixun/aggregation/7976.html">在线购物目录,有关客户.产品和定价的信息都是业务关键信息,即实体. 可以通过利益相关者的输入来收集需求.需求和数据模型通过迭代方式向对方输送数据而得到进一步完善,从而创建一个逻辑模型. 图 1 显示了迭代数据建模范例: 收集需求

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

在 DB2 数据库中,索引是按一个或多个键的值进行逻辑排序的一组指针.指针可以引用表中的行.MDC 表中的块,或在 XML 存储对象中的 XML 数据. 索引通常用于加快对表中的行的访问.若在表上定义了良好的索引,查询就可以更快地访问行. 索引是数据库对象.它们是物理对象,而不是逻辑对象(如,视图).因此,索引也占用http://www.aliyun.com/zixun/aggregation/17325.html">存储空间,需要那些会占用系统资源的必要维护.一组精心设计的索引可以提高

DB2面向OLTP环境的物理数据库设计:存储系统

与独立磁盘相比,存储系统提供了许多优势,包括降低http://www.aliyun.com/zixun/aggregation/14290.html">存储管理开销.更好的性能.巨大的存储服务器缓存.多路径访问.备用电池.更高的可靠性和更高的可用性. 最近,通常为 DB2 数据库服务器提供服务的并不是独立磁盘,而是中高端的存储系统,比如 IBM System Storage® DS6800 和 DS8300. 尽管最近固态设备 (SSD) 取得了成功,但磁盘仍然是数据中心的规范.因为处理器

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

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