Minimizar el conflicto de E/S del disco en DB2
El conflicto de E/S del disco dentro de una base de datos IBM DB2 se minimiza al ordenar correctamente los componentes de la base de datos en todo el sistema de archivos. En última instancia, el administrador de la base de datos debe reducir la posibilidad de que un proceso espere que otro complete la solicitud de E/S. Esto se denomina habitualmente como espera de E/S.
Las siguientes son recomendaciones para ayudarlo a evitar el conflicto de E/S del disco.
-
Para los espacios de tabla de usuario temporal, utilice SMS; para todos los demás espacios de tabla, utilice DMS.
Existen dos tipos de modelos de almacenamiento de espacios de tabla en DB2: el Espacio administrado por sistema (SMS) y el Espacio administrado por base de datos (DMS). Esri recomienda que utilice espacios de tabla SMS para espacios de tabla de usuario temporal y DMS para otros espacios de la tabla para un mejor rendimiento; especialmente si se espera que los datos aumenten en forma regular.
Para DB2 9, debe considerar la posibilidad de utilizar entidades de Almacenamiento automático para bases de datos, así como incorporar los atributos de Tamaño automático para los espacios de tabla. En DB2 9, los espacios de tabla DMS tienen la capacidad de proporcionar espacio de almacenamiento adicional a medida que aumentan los requisitos físicos.Nota:En DB2 9, necesita una tabla temporal global adicional DB2 (DECLARE GLOBAL TEMPORARY TABLE). Según la documentación de DB2, la declaración de una tabla temporal global requiere "privilegios SYSADM o DBADM" o "privilegio USE en un espacio de tabla USER TEMPORARY".
-
Configurar grupos de búferes.
Configurar los grupos de búferes es fundamental para el rendimiento. Por defecto, DB2 proporciona un grupo de búferes único llamado IBMDEFAULTBP. Por defecto, en DB2 9 el grupo de búferes IBMDEFAULTBP está configurado para el tamaño automático. El administrador de la base de datos ajusta el tamaño de este grupo de búferes en respuesta a los requisitos de la carga de trabajo.
Debe crear un grupo de búferes separado para cada espacio de la tabla. La instantánea de la base de datos debe revisarse para verificar los valores de lectura física del grupo de búferes. El grupo de búferes debe ser lo suficientemente grande como para que una instantánea de rehacer el mapa dé como resultado una cantidad menor de lecturas físicas. Para determinar la eficacia de un grupo de búferes, calcule la proporción de aciertos del grupo de búferes (BPHR). Una BPHR ideal, si es posible, se encuentra por encima del 90%. La fórmula es la siguiente:
BPHR (%) = (1 - (("Buffer pool data physical reads" + "Buffer pool index physical reads") / ("Buffer pool data logical reads" + "Buffer pool index logical reads"))) * 100
Otro método para revisar las proporciones de aciertos del grupo de búferes es a través del uso de la vista administrativa SYSIBMADM.BP_HITRATIO. Esta vista puede devolver proporciones de aciertos que incluyen: la proporción de aciertos total, la proporción de aciertos de los datos, la proporción de aciertos XDA y la proporción de aciertos para todos los grupos de búferes.SELECT SUBSTR(DB_NAME,1,8) AS DB_NAME, SUBSTR(BP_NAME,1,140) AS BP_NAME, TOTAL_HIT_RATIO_PERCENT, DATA_HIT_RATIO_PERCENT, INDEX_HIT_RATIO_PERCENT, XDA_HIT_RATIO_PERCENT, DBPARTITIONNUM FROM SYSIBMADM.BP_HITRATIO ORDER BY DBPARTITIONNUM
-
Establezca el tamaño de la tabla de umbral.
Como regla, almacene las tablas pequeñas juntas en el mismo espacio de tabla y las tablas grandes por separado en su propio espacio de tabla. Decida el tamaño que debe tener una tabla antes de que necesite su propio espacio de tabla. Generalmente, el umbral corresponde en parte al tamaño del contenedor máximo. Las tablas que pueden completar el contendor de tamaño máximo deben almacenarse en su propio espacio de tabla. También deben considerarse las tablas que se acercan a este límite. Siga la misma política para los índices. Separe las tablas e índices en aquellos que necesitan su propio espacio de tabla y aquellos que se agruparán juntos. Nunca almacene tablas grandes o de acceso frecuente junto con sus índices en el mismo espacio de tabla. Si utiliza DB2 9, debe considerar incorporar atributos de Almacenamiento automático para los espacios de tabla.
-
Almacene las tablas e índices pequeños por acceso.
El acceso esperado es el factor que debe tener en cuenta para decidir qué tablas pequeñas almacenar juntas en el mismo espacio de tabla. Almacene las tablas de gran acceso en un espacio de tabla, y las tablas de poco acceso en otro. Esto le permite posicionar los contendores de espacios de tabla de gran acceso con los contendores de poco acceso. Esta misma regla se aplica a los índices. Estos también deben dividirse por acceso. Se recomienda que los registros de DB2 tengan su propio disco separado de los índices y datos. Esri recomienda que establezca el valor del parámetro kernel MAXUPROC del sistema operativo en un valor mayor que el predeterminado para que todos los procesos de los usuarios de instancias de ArcSDE y DB2 se puedan ejecutar cuando se los invoque.
-
Para los sistemas operativos AIX, desactive db2set DB2_MMAP_READ y db2set DB2_MMAP_WRITE.
Esri recomienda desactivar las siguiente variables en AIX para mejorar el rendimiento. Estas variables se utilizan juntas entre sí para permitir que DB2 utilice una plataforma de acceso multiservicio y multifunción (MMAP) como un método alternativo de E/S. Esto se utiliza para evitar bloqueos del sistema operativo cuando varios procesos escriben en diferentes secciones del mismo archivo. El predeterminado es ON.
db2set DB2_MMAP_READ=OFF db2set DB2_MMAP_WRITE=OFF
-
Separe los espacios de tabla del sistema de ArcSDE STATES, STATE_LINEAGES y las tablas MVTABLES_MODIFIED y sus índices si utiliza frecuentemente la edición versionada.
Los espacios de tabla del sistema de ArcSDE almacenan los índices y las tablas de sistema de ArcSDE y geodatabase creados por el comando sdesetup de ArcSDE. El número y la colocación de los espacios de tabla dependen del propósito para el que se utiliza la base de datos de ArcSDE. La colocación de las tablas y sus índices se controla mediante los parámetros de almacenamiento de la palabra clave de configuración DBTUNE DATA_DICTIONARY. La palabra clave de configuración DATA_DICTIONARY se utiliza exclusivamente para la creación de tablas del sistema de ArcSDE y la geodatabase. Las bases de datos versionadas que admiten aplicaciones de ArcGIS cuentan con una jerarquía de estado muy activa. La jerarquía de estado mantiene los estados de todas la operaciones de edición que han ocurrido en la tablas registradas como versionadas. Cuatro tablas del sistema de ArcSDE (STATES, STATE_LINEAGES, MVTABLES_MODIFIED y VERSIONS) mantienen la información de transacción de la jerarquía de estado de la base de datos versionada. En una base de datos versionada activa, la tabla STATES_LINEAGE puede aumentar fácilmente a más de un millón de registros que ocupan más de 26 MB de espacio de tabla. La tabla STATES es mucho más pequeña, ya que almacena aproximadamente 5.000 registros y ocupa casi 2 MB de espacio de tabla. La tabla MVTABLES_MODIFIED generalmente contiene aproximadamente 50.000 registros que ocupan aproximadamente 1 MB de espacio de tabla. La tabla VERSIONS por lo general es bastante pequeña, con menos de 100 filas que ocupan aproximadamente 64 KB. Para las aplicaciones de edición muy activas de ArcGIS, las tablas STATES, STATE_LINEAGES y MVTABLES_MODIFIED y sus índices deben crearse en espacios de tabla separados y colocarse en todo el sistema de archivos para minimizar el conflicto de E/S del disco.
Nota:Si no va a utilizar una base de datos versionada, reduzca el tamaño de extensión de las tablas STATE_LINEAGES, STATES y MVTABLES_MODIFIED y sus índices a 40 KB. Cree dos espacios de tabla de 5 MB en unidades de disco separadas; una para las tablas, y otra para los índices.
-
Cree espacios de tabla lo suficientemente grandes para las tablas ráster, y cree un espacio de tabla separado para la tabla ráster de bloqueos (BLK).
La tabla ráster de bloqueos puede ser muy grande. Asegúrese de crear un espacio de tabla grande y separado para almacenar esta tabla. Puede crear otro espacio de tabla para almacenar las tablas ráster restantes. Cuando cree los espacios de tabla para la tabla ráster de bloqueos, se recomienda que utilice un tamaño de extensión de 64 KB y un tamaño de página de 32 KB. El tamaño de la extensión especifica la cantidad de páginas con tamaño de página que se escribirán en un contenedor antes de continuar con el siguiente contenedor.
Precaución:El tamaño de la extensión se define en el momento que se crea el espacio de tabla, y luego no se puede modificar fácilmente.
-
Cuando cargue grandes cantidades de datos, como datos ráster, establezca la base de datos para que utilice registro circular.
El registro circular utiliza un anillo de archivos de registro para grabar los cambios a la base de datos. Cuando se completa el último registro en el anillo, se vuelve a utilizar el primer archivo. Debido a que la información de transacción se puede sobrescribir, cuando utiliza el registro circular, no es posible la recuperación de puesta al día; sin embargo, generalmente no se necesita la recuperación durante las cargas de datos. El registro circular es el modelo de registro predeterminado. Si necesita utilizar recuperación de puesta al día, utilice registro de archivos. El registro de archivos no sobrescribe los archivos de registro; en su lugar, crea registros adicionales para grabar todas las transacciones desde la última copia de seguridad. Tenga en cuenta que necesitará más espacio en disco para utilizar registro de archivos, ya que los registros no se vuelven a utilizar como en el registro circular.
Incluso después de que ajuste su base de datos para reducir el conflicto de E/S del disco, puede haber momentos en los que se encuentre con un interbloqueo. Para obtener información sobre los interbloqueos, consulte Interbloqueos en una base de datos DB2.