DB2调优【转】ITeye - 乐橙lc8

DB2调优【转】ITeye

2019年02月20日08时36分44秒 | 作者: 浦泽 | 标签: 句子,本钱,空间 | 浏览: 1515

我经常发现一些 DB2 UDB 站点,尽管机器具有 2、4 或 8GB 内存,可是 DB2 数据库却只要一个缓冲池(IBMDEFAULTBP),其巨细只要 16MB!

如果在您的站点上也是这种状况,请为 SYSCATSPACE 目录表空间创立一个缓冲池、为TEMPSPACE表空间创立一个缓冲池以及别的创立至少两个缓冲池:BP_RAND和BP_SEQ。随机拜访的表空间应该 分配给用于随机拜访的缓冲池(BP_RAND)。次序拜访(运用异步预取 I/O)的表空间应该分配给用于次序拜访的缓冲池(BP_SEQ)。依据某些事务的功用方针,您能够创立附加的缓冲池;例如,您能够使一个缓冲池足够大以 存储整个“热”(或者说拜访十分频频的)表。当涉及到大的表时,某些 DB2 用户将重要表的索引放入一个索引(BP_IX)缓冲池取得了很大成功。

太小的缓冲池会发生过多的、不必要的物理 I/O。太大的缓冲池使体系处在操作体系页面调度的危险中并耗费不必要的 CPU 周期来办理过度分配的内存。正好适宜的缓冲池巨细就在“太小”和“太大”之间的某个平衡点上。恰当的巨细存在于报答即将开端削减的点上。如果您没有运用工 具来主动进行报答削减剖析,那么您应该在不断增加缓冲池巨细上科学地测验缓冲池功用(命中率、I/O 时刻和物理 I/O 读取率),直到到达最佳的缓冲池巨细。由于事务一直在变化和增加,所以应该定时从头评价“最佳巨细”决议计划。

1. SQL 本钱剖析

一条糟糕的 SQL 句子会完全损坏您的一整天。我不止一次地看到一个相对简略的 SQL 句子搞糟了一个调整得很好的数据库和机器。关于许多这些句子,天底下(或在文件中)没有 DB2 UDB 装备参数能够纠正因过错的 SQL 句子导致的高本钱的状况。

更糟糕的是,DBA 常常遭到种种捆绑:不能更改 SQL(或许是由于它是应用程序供货商供给的,例如 、 或 )。这给 DBA 只留下三条路可走:

1. 更改或增加索引

2. 更改群集

3. 更改目录计算信息

别的,现在强健的应用程序由不计其数条不同的 SQL 句子组成。这些句子履行的频率随应用程序的功用和日常的事务需求的不同而不同。SQL 句子的实际本钱是它履行一次的本钱乘以它履行的次数。

每个 DBA 所面对的严重的使命是,辨认具有最高“实际本钱”的句子的应战,而且削减这些句子的本钱。

经过本机 DB2 Explain 实用程序、一些第三方供货商供给的东西或 DB2 UDB SQL Event Monitor 数据,您能够计算出履行一次 SQL 句子所用的资源本钱。可是句子履行频率只能经过细心和耗时地剖析 DB2 UDB SQL Event Monitor 的数据来了解。

在研讨 SQL 句子问题时,DBA 运用的规范流程是:

1. 创立一个 SQL Event Monitor,写入文件:

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表乐橙lc8立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章