DB2参数优化

合集下载

让DB2跑得更快——DB2内部解析与性能优化

让DB2跑得更快——DB2内部解析与性能优化

精彩节摘
9.3如何定位及修复内存泄漏
在怀疑遇到内存泄漏的问题之前,必须谨慎地判断当前数据库中是否真实存在内存泄漏。判断数据库中存在 内存泄漏时需要注意以下几点:
系统中的内存在逐渐减少,甚至导致换页(paging);
SQL语句越来越慢(经常是换页导致);
随着时间增长,由DB2分配的内存在不断增加。
第3篇性能分析及内部原理剖析
第4章对优化器的原理进行了探讨,阐述了优化器的重写机制、优化原理及编译原理,并介绍了如何检查优化 器的估算结果的两种方法。
谢谢观看
并在DB2China数据库论坛担任热点讨论版块版主,主持多次热点讨论以及专家现场诊断,擅长DB2数据库及 相关产品的性能调优及故障分析,对DB2技能及实践经验有多年积累。
近年来多位业界专家一直在积极推动DB2领域的技术交流,真正理解DB2技术人员真正的需求与痛楚,是DB2 系统知识及技巧精髓的热心分享者及贡献者。
而我本人正是一名数据的信徒,多年来在著书、培训、咨询和管理等多项工作中,始终在数据的海洋中忘我 与痴迷。在受邀为本书作序之时,我回想起五年前正埋头于写作的我。那时,每日工作繁忙,仍笔耕不辍,把之 前在数据库领域的各项工作中所获得的技术积累、经验总结都尽可能地通过文字展现给读者。自认为写数据库的 书很苦,写DB2的书更苦,在出版多部著作之后,我对优秀数据库著作的评判标准,可以套用新闻界的行话: “如果事件报道得不够好,那是因为离得不够近”。
在常见的数据库问题中,性能问题不仅出现的频率较高并且很多生产系统中并不存在一个对性能问题进行隔 离的高可用机制,正因为如此,在很多关键行业的系统中,性能问题往往成为影响生产系统正常运行的最大因素。 而性能问题的影响时间有时长达数小时,这样不仅给生产系统带来了极大的负面影响,也使业务很难正常进行。

db2数据库优化方案

db2数据库优化方案

db2数据库优化方案随着企业数据量的不断增加,数据库的性能优化变得越来越重要。

在众多数据库中,DB2是一款功能强大的关系型数据库管理系统。

本文将为您介绍一些针对DB2数据库的优化方案,以提高数据库的性能和效率。

一、合理设计数据库结构良好的数据库设计是优化数据库性能的基础。

以下是一些设计数据库结构的准则:1. 使用适当的数据类型:根据数据的特性选择适当的数据类型,减小存储空间的占用,提高查询和更新速度。

2. 设计有效的主键和外键:将主键和外键应用到表的关键字段上,以确保数据的完整性和一致性,并加速查询操作。

二、合理设置数据库参数通过调整数据库参数,可以改善DB2的性能表现。

以下是一些常用的数据库参数设置建议:1. 缓冲池设置:调整缓冲池的大小,使得主要用于查询的表和索引可以被缓存,减少磁盘I/O操作。

2. 日志设置:根据业务需求设置日志的大小和数量,以平衡事务处理的性能和数据恢复的能力。

3. 并发设置:根据并发操作的需求和服务器硬件性能合理设置并发连接数和锁定策略,以提高系统的并发处理能力。

三、优化查询语句优化查询语句可以提高DB2数据库的性能和响应时间。

以下是一些优化查询语句的建议:1. 使用索引:根据查询的字段和条件创建适当的索引,加快查询速度。

2. 正确使用JOIN操作:避免使用不必要的JOIN操作,优化表之间的关联关系,减少查询的复杂性。

3. 避免全表扫描:尽量避免使用SELECT *的方式查询数据,只选择需要的字段,减少数据库的负载。

四、定期维护数据库定期维护数据库可以确保数据库的正常运行和优化性能。

以下是一些数据库维护的建议:1. 优化表和索引:根据数据库的使用情况定期重新组织表和索引,保持数据的连续性和最佳性能。

2. 清理无用数据:定期删除或归档不再使用的数据,减少数据库的存储空间占用。

3. 备份和恢复策略:制定完备的数据库备份和恢复策略,以防止数据丢失和灾难恢复。

五、硬件优化优化数据库的硬件环境可以提高系统的性能和可靠性。

DB2数据库的简单优化

DB2数据库的简单优化

内存配置优化a) 缓冲池(Buffer Pool)增加缓冲池大小以减少磁盘I/O:sql代码:ALTER BUFFERPOOL IBMDEFAULTBP SIZE 250000为不同的表空间创建专用缓冲池:sql代码:CREATE BUFFERPOOL BP_USERDATA SIZE 100000 PAGESIZE 32K b) 排序堆(Sort Heap)调整SORTHEAP参数:sql代码:UPDATE DB CFG FOR database_name USING SORTHEAP 1024 c) 包缓存(Package Cache)增加PCKCACHESz参数:sql代码:UPDATE DB CFG FOR database_name USING PCKCACHESz 640 I/O 优化a) 预读(Prefetch)调整PREFETCHSIZE参数:sql代码:UPDATE DB CFG FOR database_name USING PREFETCHSIZE 32 b) 异步I/O启用DFTDBHEAP参数:sql代码:UPDATE DB CFG FOR database_name USING DFTDBHEAP AUTOMATIC日志配置a) 日志缓冲区增加LOGBUFSZ参数:sql代码:UPDATE DB CFG FOR database_name USING LOGBUFSZ 1024 b) 日志文件大小调整LOGFILSIZ参数:sql代码:UPDATE DB CFG FOR database_name USING LOGFILSIZ 16384 锁管理a) 最大锁数增加MAXLOCKS参数:sql代码:UPDATE DB CFG FOR database_name USING MAXLOCKS 20 b) 锁列表大小调整LOCKLIST参数:sql代码:UPDATE DB CFG FOR database_name USING LOCKLIST 8192 并发控制a) 最大应用程序数增加MAXAPPLS参数:sql代码:UPDATE DB CFG FOR database_name USING MAXAPPLS 400 b) 代理数调整NUM_POOLAGENTS参数:sql代码:UPDATE DBM CFG USING NUM_POOLAGENTS 100统计信息收集a) 自动统计信息收集启用AUTO_RUNSTATS:sql代码:UPDATE DB CFG FOR database_name USING AUTO_RUNSTATS ON b) 统计信息采样调整统计信息采样率:sql代码:UPDATE DB CFG FOR database_name USING AUTO_SAMPLING YES 查询优化器a) 优化级别设置OPTLEVEL参数:sql代码:UPDATE DB CFG FOR database_name USING OPTLEVEL 5表空间管理a) 自动存储启用自动存储:sql代码:CREATE TABLESPACE ts_name MANAGED BY AUTOMATIC STORAGE b) 表空间扩展设置自动扩展:sql代码:ALTER TABLESPACE ts_name AUTORESIZE YES索引优化a) 索引重组定期重组索引:sql代码:REORG INDEXES ALL FOR TABLE table_name分区表对大表使用分区:sql代码:CREATE TABLE table_name (...) PARTITION BY RANGE(column_name) (...)压缩启用表压缩:sql代码:ALTER TABLE table_name COMPRESS YES并行度调整INTRA_PARALLEL参数:sql代码:UPDATE DB CFG FOR database_name USING INTRA_PARALLEL YES 监控和诊断a) 启用活动监控:sql代码:UPDATE DBM CFG USING DFT_MON_BUFPOOL ONUPDATE DBM CFG USING DFT_MON_LOCK ONUPDATE DBM CFG USING DFT_MON_SORT ONUPDATE DBM CFG USING DFT_MON_STMT ONb) 使用db2top工具实时监控性能c) 定期检查db2diag.log文件。

DB2数据库优化策略

DB2数据库优化策略

DB2数据库优化策略当涉及到DB2数据库优化时,具体的案例取决于数据库的具体情况和性能问题。

请注意,这些只是一些常见的DB2优化案例和步骤。

具体的优化策略取决于您的特定情况和需求。

在进行任何优化之前,建议先进行充分的需求分析和性能测试,以确保所选的优化策略能够真正解决您的问题并带来显著的性能提升。

一.索引优化:识别慢查询:首先,通过慢查询日志或性能监控工具识别慢查询。

分析查询:查看查询的执行计划,确定是否可以利用索引加速查询。

创建或优化索引:如果发现缺少必要的索引,创建索引;如果存在冗余或低效的索引,则进行优化或删除。

二.查询优化:重写复杂查询:将复杂的联接和子查询重写为更高效的查询方式,例如使用JOIN替代子查询。

使用合适的函数:避免在查询中使用复杂的函数,这可能会影响索引的使用和查询性能。

三.数据库设计优化:规范化:确保数据库表结构经过规范化,以减少数据冗余和潜在的更新、插入和删除异常。

反规范化:在适当的情况下,通过反规范化来提高查询性能,减少数据检索的复杂性。

四.硬件和配置优化:增加内存:提高数据库缓冲池的大小,以便数据库可以缓存更多的数据和索引。

使用更快的存储:选择高性能的硬盘或使用SSD来提高I/O性能。

调整数据库配置参数:根据数据库的工作负载和硬件资源,调整数据库的配置参数,如缓冲池大小、线程数等。

五.监控和调优:定期监控数据库性能:使用性能监控工具定期检查数据库的性能指标,如CPU利用率、磁盘I/O、查询响应时间等。

调整优化策略:根据监控结果,定期评估和调整优化策略,以保持数据库的最佳性能。

六.并发和负载管理:资源争用管理:分析并解决多个用户或应用程序之间的资源争用问题,确保数据库资源得到合理分配。

分区:使用分区技术将大型表和索引分成较小的、更易于管理的片段,以提高管理和查询性能。

七.定期维护:数据库维护:定期进行数据库维护,如重建索引、清理旧数据、更新统计信息等,以保持数据库性能和效率。

DB2培训讲义_DB2性能优化入门

DB2培训讲义_DB2性能优化入门

DML性能问题:查询优化
同时还要考虑到 RUNSTATS/REORG 因素。 RUNSTATS 命令可以更 新表中的统计信息。当表中的数据经过频繁的增删改后其相应的统计 信息会发生变化,而优化器选择执行计划的时候是根据这种统计信息 来计算的,所以运行 RUNSTATS 此时显得尤为重要。 REORG 可以 整理数据存储的物理结构,也能减少数据扫描的时间,提高查询的性 能。 从存储方面应当注意的是选取裸设备的 DMS 要比 SMS 性能要好,因 为它少了一层文件系统的缓冲而直接访问缓冲池。
学会使用 optimize for n rows 子句,它可以提高前面 n 条记录的显示 速度。这样可以使用户能够先快速查看这 n 条记录,然后再看其他纪 录。减少了用户的等待时间。
DML性能问题:查询优化
针对复杂查询时可以将数据库配置参数 DFT_QUERYOPT( 缺省查询 优化类 ) 的值设得高一些(7 或 9),针对简单查询可以将它设得低一 些 (3 或 5),因为设置越高优化器所作的分析就越深入,耗费在生成计 划上的时间就越多。 针对 C/S 结构的查询可以将查询语句写在服务器端生成存储过程来减 少数据的网络传输以及客户端的压力。而经过编译的存储过程执行得 更加高效。
DB2培训讲义
性能优化入门
有关的概念
DB2 性能优化的三个方面
内存 CPU I/O
内存因素
在内存方面,主要是考虑缓冲池 (BUFFERPOOL) 的使用。缓冲池是 一片用来缓冲从磁盘上读取的数据和索引的内存区域,这些数据和索 引信息在缓冲池中进行运算后最终还要写回磁盘。缓冲池的页面大小 有四种 (4K,8K,16K,32K),分别对应四种不同页面大小的表空间。缓冲 池的大小决定了能够从磁盘上缓冲数据的容量大小。当然缓冲池也不 是越大越好,缓冲池过大可能会导致连接数据库的时间过长,因为在 连接数据库时要为数据库的缓冲池分配内存空间。可以通过计算缓冲 池的命中率来评估缓冲池的使用效率:缓冲池命中率 =(1-(( 数据物理 读 + 索引物理读 )/( 数据逻辑读 + 索引逻辑读 ))) *100%,缓冲池命中 率越大说明缓冲池的使用效率高。缓冲池命中率太小说明缓冲池太小 应当调大。其中的数据物理读,索引物理读以及数据逻辑读和索引逻 辑读都可以从缓冲池的快照中获取。

DB2数据库性能优化

DB2数据库性能优化

DB2数据库性能优化
一、建立索引
(1)添加新索引
在DB2中,可以使用CREATEINDEX命令来建立索引。

通过添加索引来提高SQL语句的执行效率。

建议在经常使用的字段上建立索引,例如,WHERE子句中的字段,GROUPBY子句中的字段,ORDERBY子句中的字段或者连接条件中的字段。

(2)更新索引
如果表中的数据经常发生变化,则建议定期更新索引。

DB2有一项特殊的REORG操作,可以重新建立表中的索引,以提高查询效率。

(3)复合索引
在DB2中,可以使用复合索引来建立索引,以便提高查询效率。

复合索引可以使用多个字段,比普通索引更有效地提高查询速度。

二、查询优化
(1)使用合适的连接方式
(2)使用合适的排序方式
(3)使用子查询
(4)尽量少使用通配符
(5)尽量少使用函数
(6)查询中使用表别名
(7)使用EXISTS和NOTEXISTS
(8)使用适当的索引
三、周期性维护
(1)定期检查磁盘空间
(2)定期检查表和索引
(3)定期更新统计信息
(4)定期重新排序和重新组织表
(5)定期检查死锁
四、构造良好的数据模型
(1)正确定义数据字段
(2)使用算法优化数据存储
(3)及时删除无用的数据
(4)构造适当的表结构
五、其他
(1)设置合理的日志文件。

DB2优化工具使用

DB2优化工具使用DB2是一种关系型数据库管理系统,由IBM开发和维护。

它具有高性能、高可靠性和可伸缩性的特点,被广泛应用于企业级应用程序中。

为了提高DB2数据库的性能和效率,IBM提供了一系列优化工具。

这些工具可以帮助开发人员和数据库管理员识别和解决性能问题,并提供了一些自动化功能来优化数据库的配置和操作。

下面是一些常用的DB2优化工具:1. db2expln:这是一个命令行工具,用于分析SQL语句的执行计划。

它可以帮助开发人员识别潜在的性能问题,并提供优化建议。

使用db2expln可以确定是否需要重新设计查询或创建索引以提高性能。

2. db2exfmt:这是一个命令行工具,用于格式化和显示执行计划。

它可以帮助开发人员更好地理解查询的执行过程,包括访问路径、筛选条件和连接方式等。

通过db2exfmt,开发人员可以判断是否有必要进行优化,并根据需要进行相应的调整。

3. db2advis:这是一个命令行工具,用于生成性能优化建议。

它基于历史性能数据和配置信息分析数据库的工作负载,并提供建议以改进性能。

通过db2advis,数据库管理员可以了解数据库的当前状态,并采取相应的措施来优化性能。

4. db2pdcfg:这是一个命令行工具,用于自动配置数据库参数。

通过分析数据库的工作负载和系统资源等信息,db2pdcfg可以自动调整数据库的参数设置,以提供最佳性能。

使用db2pdcfg可以减少手动调整参数的工作量,并提高数据库的性能。

5. db2top:这是一个命令行工具,用于实时监控数据库性能。

它可以显示当前的数据库活动、查询性能和系统资源使用情况等信息。

使用db2top可以及时发现性能问题,并采取相应的措施解决问题。

6. IBM Data Studio:这是一个图形化工具,提供了丰富的功能用于优化DB2数据库。

它可以帮助开发人员和数据库管理员进行查询优化、索引管理和性能监控等工作。

使用IBM Data Studio可以更直观地了解数据库性能,并提供可视化的界面来执行优化操作。

合理调优 提高DB2日志效能

合理调优 提高■ 河南 刘进京下面重点介绍四个方法来提高日志的效能。

优化配置日志参数与DB2参数有NEWLOGPATH状态,需要做全备份后数据库才能使用。

对于主日志数目(LOGPRIMARY)来说,其空间是预先分配的,用于记录事务的处理。

日志需要的磁盘空间一定的,不管其内容是空的还是写满的。

主日志文件最大数目是256,默认为3。

一般来说,只用主日志就可以满足日常的数据库运行所需。

如果LOGPRIMARY的值设置的过小,就可能会总遇到“log-full”的情况。

如果DB2总是分配辅助日志,就说明主日志大小不够。

对于高负载的OLTP系当分配的日志数达到规定的最大数目,还不能完成当前事务,则前事务会被撤销并返回错误信息。

辅助日志一旦分配,就会一直存在直到数据库去激活。

LOGSECOND 默认值为2,设置范围从0到254。

如果将其设置为-1,表示启用无限日志。

优化日志缓冲区参数对于日志缓冲区LOGBUF Z来说,是关系到日志读写性能的重要参数,其用来定义缓冲区的内存大小,使日志I/O更加高效。

日志缓冲已满是日志写回磁盘的关键OLTP应用调优的合适起点。

执行UPDATEUSING LOGBUFZ可以对其进行调整。

OLAP初始值需小而定。

64 GB的内LOGBUFSZ等。

当然,根据系统的工作符合而定。

不过日志越好,其可能对系统性能造成影响。

来减少日志数据。

如果预计在一个表上大批量操作,可NOT LOGGED INITIALLY。

对于临时表(包含声明的全局临时表和创建来说,一般作为中间数据的中转之用,和删除等上使用MOT使其不记录到数据时,使通过SQL引擎直接写数据页,这样就不且速度很速率高的情况,O次数高。

例如,照和应用程序快照显示提交的数目非常高等。

对应的优化措施是率,如果因为因为日志缓冲区太小导致出现日志磁盘O瓶颈,可的大小,通SNAPDB(数据库快照)LOG_BUFFER_FULL(除)进行监控来确定。

DB2的参数配置说明

DB2的参数配置说明DB2是一种关系型数据库管理系统(RDBMS),它支持在各种计算环境中存储、操作和检索数据。

在使用DB2时,通过合理的参数配置可以提高数据库的性能和可靠性。

以下是关于DB2参数配置的详细说明。

1.内存参数配置:1.1DB2_MEM_PERCENT:指定了DB2实例可使用的内存百分比,默认值为100。

可以根据实际情况调整此参数,以确保系统有足够的内存资源运行DB21.2DB2_MAX_IOSERVERS:指定了DB2实例可以使用的最大IO服务器数目,默认值为10。

可以根据服务器的硬件配置和负载情况调整此参数,以获得更好的IO性能。

1.3DB2_MAX_MEMORY:指定了DB2实例可以使用的最大内存量,默认为系统可用内存的一半。

可以根据系统的内存情况和负载调整此参数,以提高数据库的性能。

2.查询优化参数配置:2.1DB2_PARALLEL_IO:指定是否允许并行IO,默认为OFF。

可以在高负载环境下启用此参数,以提高查询性能。

2.2DB2_PARALLELISM:指定了DB2查询的并行度,默认为1、可以根据系统的CPU核心数和负载情况调整此参数,以提高查询的并行执行能力。

2.3DB2_STMT_CONC:指定了单个DB2会话中并行执行的最大语句数目,默认为1、可以根据系统的负载情况调整此参数,以提高并行执行的效率。

3.缓存参数配置:3.1DB2_NUM_IOSERVERS:指定了DB2实例可以使用的IO服务器数目,默认为10。

可以根据服务器硬件配置和负载情况调整此参数,以提高IO性能。

3.2DB2_NUM_CHEKBUFFERS:指定了每个缓冲池中的检查缓冲区数目,默认为100。

可以根据系统的内存情况和负载调整此参数,以提高缓存的性能。

3.3DB2_LOGFILSIZ:指定了每个日志文件的大小,默认为64MB。

可以根据系统的IO性能和重做日志的生成速度调整此参数,以避免日志文件的频繁切换。

数据库_DB2数据库优化

数据库_DB2数据库优化DB2数据库是一种关系型数据库管理系统,由IBM开发和维护。

为了提高DB2数据库的性能和效率,需要进行一系列的优化操作。

下面将介绍一些常见的DB2数据库优化方法。

1.确保合适的硬件配置:DB2数据库的性能很大程度上依赖于底层硬件的性能。

因此,为了获得最佳性能,需要确保数据库运行在合适的硬件配置下。

这包括选择合适的处理器、内存和磁盘配置。

2.优化数据库设计:良好的数据库设计可以提高数据库的性能。

可以通过合理的表设计、索引设计和关联设计来减少数据的冗余和重复,从而提高查询和更新的效率。

3.数据库分区:当数据库中的数据量增加时,可以考虑对数据库进行分区,将数据划分为多个分区存储。

这样可以提高查询和更新的效率,减少锁冲突,并且可以利用多个处理器并行处理多个分区。

4.合理使用索引:索引是提高数据库查询性能的重要手段。

在创建索引时,需要根据实际情况选择合适的列和索引类型,并避免创建过多的索引,以防止影响更新操作的性能。

5.定期收集统计信息:收集数据库表的统计信息可以帮助DB2优化器生成更高效的查询计划。

可以使用DB2提供的统计信息收集工具来定期收集表的统计信息,并确保统计信息是最新的。

6.合理设置数据库参数:DB2数据库有很多参数可以进行优化配置。

这些参数包括缓冲池大小、日志文件大小和数据库连接数等。

通过合理设置这些参数,可以提高数据库的性能和响应速度。

7.优化SQL查询语句:SQL查询语句的性能直接影响数据库的性能。

可以通过使用合适的连接方式、避免使用不必要的子查询和关联查询等方式来优化查询语句。

8.避免长事务:长时间运行的事务会占用数据库资源,影响其他查询和更新操作的性能。

因此,需要尽量避免长时间运行的事务,或者使用事务分解等方式将长事务分解为多个短事务。

9.定期清理无用数据:数据库中的无用数据会占用磁盘空间,并影响查询和更新操作的性能。

因此,需要定期清理无用数据,例如删除过期的日志文件、归档数据和临时表等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

20
© 2011 DB2Ring
舞动DB2 系列
®
缓冲池命中率的计算(2)
SNAPSHOT命令或SNAPBP视图
[db2inst2@beijing ~]$ db2 get snapshot for bufferpools on test Bufferpool Snapshot Bufferpool name = IBMDEFAULTBP Database name = TEST Database path = /home/db2inst2/db2fs/db2inst2/NODE0000/SQL00001/ Input database alias = TEST Snapshot timestamp = 01/01/2012 09:41:32.411385
应用程序日志
– 如果出现SQL1040N说明代理资源紧张
设置max_coordagents的意义
– 防止连接过多,导致系统资源耗尽
17
© 2011 DB2Ring
舞动DB2 系列
®
缓冲池
BUFFERPOOL的大小
– -2: 自动调整大小 – -1: 采用db cfg中的BUFFPAGE值 – 其他值:固定大小
DB CFG – MAXAPPLS:最大活动应用程序数配置参数
15
© 2011 DB2Ring
舞动DB2 系列
®
代理参数调整
对于拥有连接池管理功能的应用程序,建议采用“非连接集中器模式”
– max_connections=max_coordagents MAX_COORDAGENTS – 与应用程序连接池的最大连接数相呼应 NUM_POOLAGENTS – 与应用程序连接池的平均连接数相呼应 NUM_INITAGENTS – 设置为应用程序低峰期的平均连接数 MAXAPPLS – 一个实例只有一个数据库,建议与MAX_COORDAGENTS保持一致 – 多个数据库:MAXAPPLS之和不能小于MAX_COORDAGENTS值
设置上述参数,需对应用程序进行测试
10
© 2011 DB2Ring
舞动DB2 系列
®
目录
操作系统参数 注册表变量 数据库配置
初始化配置
STMM自动内存管理
11
© 2011 DB2Ring
舞动DB2 系列
®
数据库配置参数的内容
DB2代理 缓冲池 DBHEAP Package Cache
5
© 2011 DB2Ring
舞动DB2 系列
®
Solaris/HP-UX内核参数
针对Solaris/HP-UX的内核参数配置工具
– db2osconf
Solaris内核参数配置文件
– /etc/system
HP-UX内核参数配置方法
– HP-UX sam工具
# /opt/IBM/db2/V9.7/bin/db2osconf
修改注册表变量
– db2set variable=value
8
© 2011 DB2Ring
舞动DB2 系列
®
注册表变量(DB2_PARALLEL_IO)
DB2_PARALLEL_IO参数定义容器的并行度 – 容器的并行度定义了每个容器对应几个物理磁盘 – 当prefetch定义为automatic时生效 db2set DB2_PARALLEL_IO=*:5 – 所有表空间容器的并行度为5 db2set DB2_PARALLEL_IO=*:5,2:8
AIO – 启用IOCP – 使用“smit iocp”命令
4
© 2011 DB2Ring
舞动DB2 系列
®
Linux系统参数
内核参数/etc/sysctl.conf
# cat /etc/sysctl.conf --下面是内存为16GB的配置例子 --如果内存多于16GB, SEMMSL、SEMMNS、SEMOPM、msgmax和msgmnb保持不 变 --但是,shmmni、shmmax、shmall、SEMMNI和msgmni的设置成比例增大,见下面 红色字体内容: kernel.shmmni=4096 kernel.shmmax=17179869184 kernel.shmall=8388608 --kernel.sem=<SEMMSL> <SEMMNS> <SEMOPM> < SEMMNI> kernel.sem=250 256000 32 4096 kernel.msgmni=16384 kernel.msgmax=65536 kernel.msgmnb=65536
– 表空间2的容器的并行度为8 – 其他表空间容器的并行度为5 对于DB2_PARALLEL_IO=*:5配置,表空间的prefetch计算方法为 – (Extent*Container*5)*PageSize
9
© 2011 DB2Ring
舞动DB2 系列
®
注册变量(并发相关)
下列注册表变量与并发性相关
21
© 2011 DB2Ring
舞动DB2 系列
Catalog Cache
Statistics Heap SORTHEAP 日志 锁
优化器
Utility Heap Application Heap Statement Heap
12
异步写 预取
© 2011 DB2Ring
舞动DB2 系列
®
DB2代理(agent)
舞动DB2 系列
®
DB2参数调优
• 王飞鹏 • Mobile: 13811817203 • Mail:13811817203@ • QQ: 16198686 • QQ群: 186465431
DB2 参数调优
1
© 2011 DB2Ring
舞动DB2 系列
®
目录
操作系统参数 注册表变量 数据库配置
查看BUFFERPOOL的大小
– select substr(bpname,1,20), npages from syscat.bufferpools – db2mtrk
BUFFERPOOL大小的调整原则
– OLTP系统保证命中率尽量接近100%
– BUFFERPOOL比表空间还大没有意义 – 不要调整的过大,使操作系统尽量少的使用SWAP空间为宜
DB_NAME -------TEST TEST TEST TEST TEST
BP_NAME TOTAL_RATIO DATA_RATIO INDEX_RATIO XDA_RATIO -------------------- ----------- ---------- ----------- --------IBMDEFAULTBP 64.00 66.57 61.89 IBMSYSTEMBP4K IBMSYSTEMBP8K IBMSYSTEMBP16K IBMSYSTEMBP32K -
18
© 2011 DB2Ring
舞动DB2 系列
®
缓冲池的性能指标-命中率
BUFFERPOOL命中率的计算公式
– 读命中的次数/读总次数 – 或:1-(未命中率)
BUFFERPOOL命中率的计算方法
– 通过SYSIBMADM.BP_HITRATIO视图直接查看 – 通过SYSIBMADM.SNAPBP视图或SNAPSHOT for BUFFERPOOL命令计算
– lru_file_repage:设置为0 – maxperm:设置为20 AIO – 异步I/O
chdev -l aio0 -a maxservers=100 chdev -l aio0 -a maxreqs=4096
– maxservers:根据系统压力适当调大 – maxreqs:MAX( NUM_IOCLEANERSx256, 4096 )
Buffer Buffer Buffer Buffer
pool pool pool pool
data logical reads data physical reads index logical reads index physical reads
= = = =
795 243 912 338
DATA_RATIO=(795-243)/795=69.43% INDEX_RATIO=(912-338)/912=62.94%
set set set set
msgsys:msginfo_msgmni semsys:seminfo_semmni shmsys:shminfo_shmmax shmsys:shminfo_shmmni
= = = =
7168 8192 123655598899 8192
Total kernel space for IPC: 1.12MB (shm) + 3.00MB (sem) + 2.48MB (msg) == 6.60MB (total)
– db2pd –db sample -bufferpools
19
© 2011 DB2Ring
舞动DB2 系列
®
缓冲池命中率的计算(1)
BP_HITRATIO视图
SELECT substr(DB_NAME,1,8) as DB_NAME, substr(BP_NAME,1,20) as BP_NAME, TOTAL_HIT_RATIO_PERCENT as TOTAL_RATIO, DATA_HIT_RATIO_PERCENT as DATA_RATIO, INDEX_HIT_RATIO_PERCENT as INDEX_RATIO, XDA_HIT_RATIO_PERCENT as XDA_RATIO FROM SYSIBMADM.BP_HITRATIO
相关文档
最新文档