![[z/OS]](../images/ngzos.gif)
z/OS 的 DB2调整提示
通常,DB2® 的性能调整对于 WebSphere® Application Server 应用程序的总性能比较重要。DB2 通常是 Enterprise JavaBeans (EJB) 的首选数据存储器。 此处列出了一些用于 DB2 调整的基本准则和 DB2 for WebSphere Application Server 的一些准则。有关 DB2 调整的更多完整信息,请参阅 DB2 Universal Database™ OS/390® 版和 z/OS® 版管理指南(文档号 SC26-9931-03)。DB2 书籍可以从以下互联网位置中获取:http://www.ibm.com/servers/eserver/zseries/zos/。
Java™ (SQLJ) 中结构化查询语言的优点
如果使用 DB2 通用 JDBC 驱动程序提供程序,那么可以实现 SQLJ 作为 BMP 和 CMP Bean 的查询语言。SQLJ 导致的事务开销要小于 JDBC 事务的缺省查询语言(它是动态 SQL)。SQLJ 是静态的且使用预编译规划。因此 SQLJ 通常会改进应用程序性能。对于 DB2 z/OS 版数据库管理员,通常很容易采用 SQLJ,因为它的安全模型和语句重复性功能与静态 SQL 的类似。SQLJ 确实需要一些额外步骤,这些步骤是新版本的 WebSphere Studio Application Developer 和 Rational® Application Developer 的功能。
请参阅“开发数据访问应用程序”主题以获取更多信息。
常规 DB2 调整提示:
本讨论只与 DB2 z/OS 版 JDBC 驱动程序相关,该驱动程序也称为 DB2 z/OS 版传统 JDBC 驱动程序。
- 首先,请确保 DB2 日志足够大,并将其分配到最快的卷上,确保他们具有最佳 CI 大小。
- 接下来,确保您调整了您的缓冲池,以便大多数经常读取的数据会尽可能多地在内存中。使用 ESTOR 和 hyperpool。
- 您可能要考虑将大量使用的预格式化表。这会避免在运行时格式化。
DB2 WebSphere 版调整提示:
- 确保已关闭了 DB2 z/OS 版通用驱动程序下的 DB2 跟踪。
- 如果已经定义 db2.jcc.propertiesFile jvm 属性来指定 DB2 jcc
属性文件到 WebSphere Application Server for z/OS,请确保注释出文件中以下跟踪语句(如果指定):
# jcc.override.traceFile=<file name> # jcc.override.traceFile=<file name>
- 如果使用非零的 traceLevel 定制属性来定义应用程序使用的 DB2 通用 JDBC 驱动程序数据源,请使用 WebSphere Application Server for z/OS 管理控制台将 traceLevel 设置为 0。
- 如果已经定义 db2.jcc.propertiesFile jvm 属性来指定 DB2 jcc
属性文件到 WebSphere Application Server for z/OS,请确保注释出文件中以下跟踪语句(如果指定):
- 确保在所有对象主键上定义索引。不这样做会导致高成本的表空间扫描。
- 确保一旦您的表植入的足够,就执行重新组织以压缩表。运行 RUNSTATS 会确保关于表和列大小的 DB2 目录统计信息和访问是最新的,这样可以通过优化器选择最佳的访问模式。
- 您必须定义调用 DB2 中线程的更多连接。WebSphere Application Server 使用大量线程。有时这会是吞吐量瓶颈的根源,因为服务器将等待创建线程直到有线程可用。
- 确保您处于当前 JDBC 维护级别。已对 JDBC 进行了很多性能改进。要确定 JDBC 维护级别,从 shell 输入以下内容:
java com.ibm.db2.jcc.DB2Jcc -version
如果它返回“找不到类”,那么说明您的驱动程序级别太旧并且不支持此命令,或您未正确地发出此命令。 最佳实践: 在 DB2 中启用动态语句高速缓存。为此,请修改您的 ZPARMS,比方说为 CACHEDYN(YES) MAXKEEPD(16K)。根据应用程序,这会在很大程度上改进 DB2 性能。 特别地它会有助于 JDBC 和 LDAP 查询。bprac
- 将 DB2 检查点时间间隔设置增加到一个较大的值。要执行此操作,请修改 ZPARMS 以包括 CHKFREQ=xxxxx,其中 xxxxx 设置为执行基准程序时较高的值。但是,在生产系统中,有保持检查点频率较低的其他有效原因。
//DB2INSTE JOB MSGCLASS=H,CLASS=A,NOTIFY=IBMUSER /*JOBPARM SYSAFF=* //****************************************************************** //* JOB NAME = DSNTIJUZ //* //* DESCRIPTIVE NAME = INSTALLATION JOB STREAM //* //* LICENSED MATERIALS - PROPERTY OF IBM //* 5675-DB2 //* (C) COPYRIGHT 1982, 2000 IBM CORP. ALL RIGHTS RESERVED. //* //* STATUS = VERSION 7 //* //* FUNCTION = DSNZPARM AND DSNHDECP UPDATES //* //* PSEUDOCODE = //* DSNTIZA STEP ASSEMBLE DSN6.... MACROS, CREATE DSNZPARM //* DSNTIZL STEP LINK EDIT DSNZPARM //* DSNTLOG STEP UPDATE PASSWORDS //* DSNTIZP STEP ASSEMBLE DSNHDECP DATA-ONLY LOAD MODULE //* DSNTIZQ STEP LINK EDIT DSNHDECP LOAD MODULE //* DSNTIMQ STEP SMP/E PROCESSING FOR DSNHDECP //* //* NOTES = STEP DSNTIMQ MUST BE CUSTOMIZED FOR SMP. SEE THE NOTES //* NOTES PRECEDING STEP DSNTIMQ BEFORE RUNNING THIS JOB. //* //* LOGLOAD=16000000, //*********************************************************************/ //* //DSNTIZA EXEC PGM=ASMA90,PARM='OBJECT,NODECK' //STEPLIB DD DSN=ASM.SASMMOD1,DISP=SHR //SYSLIB DD DISP=SHR, // DSN=DB2710.SDSNMACS // DD DISP=SHR, // DSN=SYS1.MACLIB //SYSLIN DD DSN=&LOADSET(DSNTILMP),DISP=(NEW,PASS), // UNIT=SYSALLDA, // SPACE=(800,(50,50,2)),DCB=(BLKSIZE=800) //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSUT1 DD UNIT=SYSALLDA,SPACE=(800,(50,50),,,ROUND) //SYSUT2 DD UNIT=SYSALLDA,SPACE=(800,(50,50),,,ROUND) //SYSUT3 DD UNIT=SYSALLDA,SPACE=(800,(50,50),,,ROUND) //SYSIN DD * DSN6ENV MVS=XA DSN6SPRM RESTART, X . . . AUTH=YES, X AUTHCACH=1024, X BINDNV=BINDADD, X BMPTOUT=4, X CACHEDYN=YES, X . . . MAXKEEPD=16000, X . . . DSN6ARVP ALCUNIT=CYL, X . . . DSN6LOGP DEALLCT=(0), X . . . DSN6SYSP AUDITST=NO, X BACKODUR=5, X CHKFREQ=16000000, X CONDBAT=400, X CTHREAD=1200, X DBPROTCL=PRIVATE, X DLDFREQ=5, X DSSTIME=5, X EXTRAREQ=100, X EXTRASRV=100, X EXTSEC=NO, X IDBACK=1800, X . . . //*