![[z/OS]](../images/ngzos.gif)
Sugerencias de ajuste de DB2 para z/OS
El ajuste de rendimiento para DB2 es generalmente crítico para el rendimiento general de una aplicación WebSphere Application Server. Con frecuencia, DB2 es el almacén de datos preferido para los EJB (Enterprise JavaBeans). A continuación, se enumeran algunas directrices básicas para el ajuste de DB2 junto con otras directrices para el ajuste de DB2 para WebSphere Application Server. Para una información más completa sobre el ajuste de DB2, consulte la guía DB2 Universal Database for OS/390 y z/OS Administration Guide número de documento SC26-9931-03. Se puede acceder a los manuales de DB2 en la siguiente dirección de Internet: http://www.ibm.com/servers/eserver/zseries/zos/.
Ventajas del lenguaje de consulta estructurado en Java™ (SQLJ)
Su utiliza el proveedor del controlador JDBC de DB2 Universal, puede implementar SQLJ como el lenguaje de consulta para los beans BMP y CMP. SQLJ requiere menos actividad general de transacciones que el lenguaje de consulta por omisión para transacciones JDBC, que es el SQL dinámico. SQLJ es estático y utiliza planes preparados previamente. Por lo tanto, SQLJ mejora en general el rendimiento de las aplicaciones. Para los administradores de base de datos de DB2 para z/OS, SQLJ suele ser más fácil de adoptar porque el modelo de seguridad y las características de repetición de sentencias son similares a las de SQL estático. SQLJ requiere pasos adicionales que son características de versiones más recientes de WebSphere Studio Application Developer y Rational Application Developer.
Consulte el tema Desarrollo de aplicaciones de acceso a datos para obtener más información.
Sugerencias de ajuste generales de DB2:
Esta descripción sólo está relacionada con el controlador JDBC de DB2 para z/OS JDBC, al que se hace referencia como el controlador JDBC de DB2 para z/OS heredado.
- Primero, asegúrese de que los registros cronológicos de DB2 son lo suficientemente largos, están ubicados en los volúmenes mas rápidos que tenga y tienen tamaños de CI óptimos.
- A continuación, asegúrese de que ha ajustado las agrupaciones de almacenamiento intermedio de modo que los datos leídos con más frecuencia están en la memoria en la mayor cantidad posible. Utilice ESTOR y las hiperagrupaciones.
- Es recomendable que formatee previamente las tablas que se vayan a utilizar con mucha frecuencia. Esto evita el formato durante el tiempo de ejecución.
Sugerencias de ajuste de DB2 para WebSphere:
- Asegúrese de que el rastreo de DB2 bajo el controlador de DB2 para z/OS Universal esté desactivado
- Si se ha definido la propiedad JVM db2.jcc.propertiesFile para especificar un archivo de propiedades jcc de DB2 en WebSphere Application Server para z/OS, asegúrese de que se comenten las siguientes sentencias de rastreo del archivo, si se han especificado:
# jcc.override.traceFile=<nombre de archivo> # jcc.override.traceFile=<nombre de archivo>
- Si alguno de los orígenes de datos del controlador JDBC de DB2 universal que estén utilizando las aplicaciones se define con un propiedad personalizada traceLevel distinta de cero, utilice la consola consola administrativa de WebSphere Application Server para z/OS para establecer traceLevel en cero.
- Si se ha definido la propiedad JVM db2.jcc.propertiesFile para especificar un archivo de propiedades jcc de DB2 en WebSphere Application Server para z/OS, asegúrese de que se comenten las siguientes sentencias de rastreo del archivo, si se han especificado:
- Asegúrese de definir índices en todas las claves primarias de objeto. De lo contrario, se producirán costosas exploraciones del espacio de tablas.
- Asegúrese de realizar un reorganización para compactar las tablas, una vez que las tablas estén lo suficientemente rellenadas. La ejecución de RUNSTATS garantizará que las estadísticas del catálogo de DB2 sobre los accesos y tamaños de tablas y columnas son más actuales de modo que el optimizador pueda escoger los mejores patrones de acceso.
- Deberá definir más conexiones llamadas hebras en DB2. WebSphere Application Server utiliza muchas hebras. En ocasiones esto origina cuellos de botella del rendimiento, ya que el servidor espera hasta que se cree una hebra que este disponible.
- Asegúrese de que está al día con el mantenimiento de JDBC. Se han
realizado muchas mejoras de rendimiento en JDBC. Para determinar el nivel
de mantenimiento de JDBC, especifique la siguiente información del shell:
java com.ibm.db2.jcc.DB2Jcc -version
Si se devuelve una clase no encontrada, o bien se encuentra en un nivel anterior del controlador y no da soporte a este mandato, o bien no ha emitido el mandato correctamente. Best practice: Habilite el almacenamiento en la memoria caché de sentencias dinámicas en DB2. Para realizar esto, modifique ZPARMS para que diga CACHEDYN(YES) MAXKEEPD(16K). Según la aplicación, esto puede suponer una mejora significativa en el rendimiento de DB2. En concreto, puede ser útil para la consulta JDBC y LDAP.bprac
- Aumente los valores de intervalo de punto de control de DB2 a un valor mayor. Para ello, modifique ZPARMS para que incluya CHKFREQ=xxxxx, donde xxxxx se establece en un valor alto cuando se realizan pruebas comparativas. No obstante, en los sistemas de producción existen otras razones válidas para mantener las frecuencias de punto de control bajas.
//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. RESERVADOS TODOS LOS DERECHOS. //* //* 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 . . . //*