3. DB2 Everyplace
DB2 Everyplace es más que solo una infraestructura de computación
móvil.
DB2 Personal Edition
DB2 Personal Edition (DB2 Personal) es un RDBMS de un solo usuario
que se ejecuta en hardware de escritorio de bajo costo.
DB2 Express-C
DB2 Express - C realmente no se considera una edición de la familia
DB2, pero proporciona la mayoría de las capacidades de DB2 Express.
4. DB2 Express-C
Una característica definitiva de DB2 Express - C es que no tiene los
límites que normalmente están asociados con estos tipos de
ofrecimientos por parte de otros proveedores.
DB2 Express Edition
DB2 Express Edition (DB2 Express) es un RDBMS de cliente/servidor
con funciones completas y habilitado paraWeb.
DB2 Express proporciona un servidor de bajo costo y de nivel de
entrada que está dirigido principalmente a empresas pequeñas y
computación por departamentos.
5. DB2Workgroup Edition
DB2Workgroup proporciona un servidor de bajo costo y de nivel de
entrada que está dirigido principalmente a empresas pequeñas y
computación por departamentos.
DB2 Enterprice Edidion
Está disponible para todos los sabores soportados de Linux, UNIX y
Windows. DB2 Enterprise está dirigido para servidores por
departamentos de tamaño grande y mediano.
6. Herramientas de Monitoreo.
DB2 colecciona información a nivel de:
Las bases de datos.
Del manejador de bases de datos.
Las aplicaciones conectadas a la base de datos.
Existen dos maneras de monitorear la base de datos:
Table Functions. Con ellas se puede ver información del estado de varios
aspectos de la base de datos a un punto específico en el tiempo.
Snapshoots. Se pueden crear monitores de eventos que capturan
información histórica con forme ocurren eventos específicos de base
de datos.
7. Se utilizan para coleccionar y ver información sobre
sistemas, actividades u objetos.
La información es continuamente acumulada en memoria
y disponible para consulta.
Se puede filtrar datos para un objeto en específico o para
todos los objetos.
La perspectiva de monitoreo del sistema abarca el
volumen completo de trabajo en el servidor, desde esta
perspectiva se puede determinar qué es lo que hace el
servidor como un todo así como examinar solicitudes
particulares de aplicaciones.
8. Existe gran variedad de table functions, entre ellas se puede usar
las siguientes:
MON_GET_SERVICE_SUBCLASS y
MON_GET_SERVICE_SUBCLASS_DETAILS
MON_GET_WORKLOAD y MON_GET_WORKLOAD_DETAILS
MON_GET_CONNECTION y MON_GET_CONNECTION_DETAILS
MON_GET_UNIT_OF_WORK y
MON_GET_UNIT_OF_WORK_DETAILS
MON_GET_BUFFERPOOL
MON_GET_TABLESPACE
MON_GET_CONTAINER
MON_GET_TABLE
MON_GET_INDEX
MON_GET_LOCKS
MON_GET_APPL_LOCKWAIT
9. Como identificar las retinas más consumidoras de CPU:
SELECT
ROUTINESCHEMA, ROUTINEMODULENAME, ROUTINENAME, SPECIFICNAM
E, SUM(TOTAL_CPU_TIME)ASTOTAL_CPUFROM
TABLE(MON_GET_ROUTINE(NULL,NULL,NULL,NULL,-2)) ASTGROUP BY
ROUTINESCHEMA, ROUTINEMODULENAME, ROUTINENAME, SPECIFICNAME
ORDER BYTOTAL_CPU DESC
Investigando el rendimiento de un procedimiento almacenado llamado
test.proc1.
SELECT B.EXECUTABLE_ID, 100*B.COORD_STMT_EXEC_TIME /
A.TOTAL_ROUTINE_COORD_EXEC_TIMEAS PERCENT_EXEC_TIME,(SELECT
SUBSTR(C.STMT_TEXT,1,120)FROM
TABLE(MON_GET_PKG_CACHE_STMT(NULL,B.EXECUTABLE_ID,NULL,-2))AS
C) AS STMT_TEXTFROM
TABLE(MON_GET_ROUTINE('P','TEST',NULL,'PROC1', -2)) AS
A, TABLE(MON_GET_ROUTINE_EXEC_LIST('P','TEST',NULL,'PROC1', -1)) AS
BWHEREA.TOTAL_ROUTINE_COORD_EXEC_TIME<>0ORDER BY
PERCENT_EXEC_TIME DESC
10. Se pueden usar snapshots monitors para capturar información
sobre la base de datos y para cualquier aplicación conectada a un
tiempo especifico.
Son muy utilices para determinar el estado del sistema de base de
datos.
También se pueden tomar periódicamente en intervalos regulares
para observar tendencias y prever problemas potenciales.
Existen varios tipos de snapshots disponibles, cada uno de ellos
retornando información de monitoreo especifica, por ejemplo se
pueden capturar snapshots que retornen solo información del
buffer pool, o por ejemplo información del manejador de bases de
datos.
11. Se pueden accesar de las siguientes dos formas:
Vistas administrativas:
Un snapshot de información de aplicación para la base de datos
SAMPLE.
SELECT * FROM SYSIBMADM.SNAPAPPL
Un snapshot para obtener información de bloqueo para la base de
datos actual seria así:
▪ SELECT * FROM SYSIBMADM.SNAPLOCK
Table function:
Por ejemplo para capturar información de bloqueo de la base de datos
SAMPLE se ejecutaría la siguiente instrucción:
▪ SELECT * FROMTABLE(SNAP_GET_LOCK('SAMPLE',-1))AS SNAPLOCK
12. WLM le permite a DB2 poder maximizar el uso
de los recursos de hardware disponibles en el
servidor donde se encuentre instalado para
obtener un óptimo desempeño del servicio.
Definición de objetivos, ejemplos:
Las consultas provenientes de una aplicación en
particular no pueden consumir más de un 10% del
CPU.
Que una cierta una utilidad batch ejecutada en la
noche debe estar lista antes de determinada hora de
la madrugada.
13. Identificación de la carga de trabajo. Se debe saber los detalles
sobre la carga, sobre todo el origen de la carga, por ejemplo saber
la aplicación que genera la carga, el usuario que la genera, etc.
Manejo de la carga. Esta fase requiere de tener mecanismos para
lograr la meta y de acciones definidas en caso en que la meta no
esté siendo alcanzada. En esta etapa existen los llamados “service
class”, que definen el ambiente de ejecución sobre el que la carga
puede correr. Los service class incluyen recursos disponibles y
umbrales de ejecución.
Monitoreo. El monitoreo es importante porque es por medio de
este que logramos saber si estamos cumpliendo con los objetivos.
Asi mismo por medio de monitoreo el motor puede saber si
problemas presentes pueden afectar el logro de un objetivo.
15. Esta herramienta contribuye significativamente en el mejoramiento del
rendimiento de la carga de trabajo del servidor.
Seleccionar cuales índices, MQTs, dimensiones clúster o particiones de
base de datos deben existir para una carga de trabajo grande puede ser
compleja.
El design advisor identifica todos los objetos que son necesarios para
mejorar el rendimiento de la carga de trabajo.
Dado una traza de la carga de trabajo esta herramienta genera
recomendaciones para:
Incluir nuevos índices.
Incluir nuevos índices clúster.
Nuevas MQTs. (materialized query tables).
Redistribution de tablas.
17. Requisitos de Disco
El espacio de disco necesario para el producto
depende del tipo de instalación que se elija y del tipo
de sistema de archivos de que se disponga.
El Asistente de instalación de DB2 proporciona
estimaciones de tamaño dinámicas basadas en los
componentes seleccionados durante una instalación
típica, compacta o personalizada.
En sistemas operativos Linux y UNIX, se recomienda
disponer de 2 GB de espacio libre en el directorio /tmp.
18. Requisitos de Memoria
Los requisitos de memoria se ven afectados por el
tamaño y la complejidad del sistema de bases de datos
y la magnitud de la actividad de la base de datos y el
número de clientes que acceden al sistema.
Como mínimo, un sistema de base de datos DB2
requiere 256 MB de RAM1.
Para un sistema que sólo ejecute un producto DB2 y
las herramientas de la GUI de DB2 se requieren 512 MB
de RAM como mínimo.
19. Requisitos de Espacio de Paginacion
DB2 requiere que se habilite la
paginación, también denominada intercambio.
Esta configuración es necesaria para dar soporte a
varias funciones de DB2 que supervisan o
dependen del conocimiento de la utilización de
espacio de intercambio/paginación.
20. Información preliminar sobre las
autorizaciones para BD
Las autorizaciones proporcionan una forma de
agrupar privilegios y de controlar las operaciones
de mantenimiento y de programa de utilidad para
las instancias, las bases de datos y los objetos de
base de datos.
21. Información preliminar sobre las autorizaciones
para BD
SYSADM
▪ Es el nivel más alto de autorización administrativa.
▪ Incluye todos los privilegios sobre las BD de la instancia de
DB2 así como la autorización para otorgar y revocar todas las
demás autorizaciones y privilegios.
DBADM
▪ Proporciona autorización administrativa para una base de
datos específica.
▪ Permite al usuario acceder y modificar todos los objetos de
esa base de datos.
22. Información preliminar sobre las autorizaciones
para BD
SYSCTRL
▪ Es la autorización para controlar los recursos utilizados por el
gestor de bases de datos (por ejemplo, crear y suprimir bases
de datos).
▪ No permite acceder a los datos de la base de datos.
SYSMAINT
▪ Es la autorización para realizar operaciones de mantenimiento
como, por ejemplo, iniciar y detener el servidor DB2 y hacer
copia de seguridad y restaurar bases de datos.
23. Información preliminar sobre las autorizaciones
para BD
LOAD
▪ La autorización LOAD en el nivel de base de datos, combinada
con el privilegio INSERT de una tabla, permite al usuario
cargar datos en esa tabla.
SECADM(security administrator)
▪ Se aplica a nivel de base de datos y es la autorización
necesaria para crear, modificar y eliminar componentes de
etiquetas de seguridad, políticas de seguridad y etiquetas de
seguridad, que se utilizan para proteger tablas.
24. Afinamiento uso de la memoria
El comando db2pd se utiliza para solucionar
problemas porque puede muestra una visión rápida
y establece la información inmediata de la memoria
de DB2.
▪ El comando de db2pd -memblock puede ser útil cuando
usted está tratando de entender el uso de la memoria
25. Administrador de tareas del SO
Utilice esta herramienta para averiguar que los
procesos de DB2 está ejecutando y diagnosticar
problemas de rendimiento.
Con esta herramienta, puede determinar el uso de
memoria, límites de memoria, swapper, espacio
utilizado y fugas de memoria para un proceso.
27. db2syscs (Win)
Este es el controlador principal o motor del sistema DB2.
A partir de DB2 9.5, hay un único motor principal multi-hilo
para toda la partición.
El servidor de bases de datos no puede funcionar sin este
proceso.
db2acd
Es el demonio de computación autonómica y se usa para
realizar tareas automáticas del lado del cliente, tales como
el monitor de salud, utilitarios automáticos para
mantenimiento y el programador de tareas administrativas.
28. db2wdog
El “perro guardián” (watchdog) de DB2.
Está por encima de el proceso principal del motor
DB2 y se encarga de liberar recursos en caso que el
proceso db2sysc termine anormalmente.
db2vend
Fué introducido en la versión 9.5 de DB2.
Proceso que es ejecutado e invocado por terceras
aplicaciones.
29. db2wdog
El “perro guardián” (watchdog) de DB2.
Está por encima de el proceso principal del motor
DB2 y se encarga de liberar recursos en caso que el
proceso db2sysc termine anormalmente.
db2vend
Fué introducido en la versión 9.5 de DB2.
Proceso que es ejecutado e invocado por terceras
aplicaciones.
30. db2fmp
Proceso que ejecuta código de usuario en el
servidor por fuera del firewall tanto para
procedimientos almacenados como para funciones
definidas por el usuario.
Db2sysc
Es responsable del arranque y la detención del
sistema y el manejo de la instancia en ejecución.
31. db2tcpcm
Proceso que escucha las comunicacionesTCP/IP
db2agent
Agente coordinador que realiza operaciones de
base de datos en nombre de las aplicaciones.
Hay al menos uno por conexión, dependiendo si el
Concentrador de Conexiones está activado
32. db2agntp
Es un subagente activo que es generado si
INTRA_PARALLEL tiene el valorYES.
db2agent
Agente coordinador que realiza operaciones de
base de datos en nombre de las aplicaciones.
Hay al menos uno por conexión, dependiendo si el
Concentrador de Conexiones está activado
33. La mejor práctica es controlar regularmente el
sistema de carga con vmstat y iostat en Linux y
sistemas basados en UNIX, y perfmon(Monitor de
rendimiento deWindows).
También puede utilizar las vistas
administrativas, como
ENV_SYS_RESOURCES, para recuperar el
sistema operativo, la CPU, la memoria, y otra
información relacionada con el sistema.
34. REORG
El comando REORG toma el espacio desperdiciado
y reorganiza los datos para hacer la extracción más
eficiente.
La mayoría de las tablas que son frecuentemente
modificadas se beneficiarán al ejecutar REORG.
RUNSTATS
Utilizado para actualizar estas estadísticas.
Correr este comando es esencial para mantener las
estadísticas actualizadas.
35. BIND / REBIND
Los planes de acceso del SQL estático son definidos
cuando se ejecuta un comando BIND.
Las estadísticas usadas cuando se ejecutó el BIND
no serán siempre las mismas que las actuales.
36. El optimizador puede elegir un plan de acceso para ejecutar una
consulta sql en paralelo si el grado de paralelismo es especificado
cuando la consulta es compilada.
En tiempo de ejecución múltiples procesos “agentes”, son creados
para ejecutar la consulta.
El número de agentes es menor o igual al grado de paralelismo
que fue especificado cuando la sentencia fue compilada.
Para paralelizar el plan de acceso el optimizador lo divide en
porciones que son corridas por cada agente y una porción que es
corrida por un agente coordinador.
Los agentes pasan datos al agente coordinador a través de colas
de tablas.
37. Table e Index Scan Paralelos.
La tabla o el índice es divido en rangos de paginas o filas, mismo que
son asignados a los agentes.
Cuando un agente termina su escaneo se le puede asignar otro rango
del objeto.
Este tipo de paralelismo provee una distribución equitativa del
trabajo.
El objetivo es que balancear la carga entre los agentes para
mantenerlos ocupados equitativamente.
Si el número de agentes ocupados es igual al número de CPUs y los
discos duros son recargados con IO se dice que los recursos de la
maquina están siendo usados efectivamente.
Del mismo modo el optimizador puede aplicar estrategias de
paralelismo para ejecutar ordenamientos, agrupaciones y
creaciones de tablas temporales.
38. Se puede pensar en una MQT como una tabla cuya definición está
basada en el resultado de una consulta sql.
La MQT almacena físicamente la data resultado de la SQL y es
posible trabajar con ella en lugar de usar la data de las tablas base.
MQT son una poderosa manera de mejorar el tiempo de respuesta
para consultas complejas. Esto es especialmente cierto para
consultas con una o más de las siguientes operaciones:
Agregaciones sobre una o más dimensiones.
Muchos Joins.
Datos comúnmente accesados.
Durante la compilación de las sentencias SQL en la fase de sobre
escritura el optimizador evalúa las MTQ y decide si corresponde
substituir las tablas base por MQTs.
39. Esta herramienta provee información detallada sobre el plan de
acceso que el optimizador selecciona para una consulta SQL.
Esta información le sirve al programador o al DBA en el proceso de
tunning de la consulta o de la instancia de la base de datos.
Esta herramienta le colabora en tareas como:
Entender como el manejador de la base de datos accesa las tablas e
índices para satisfacer una consulta.
Evaluar el rendimiento de las modificaciones hechas durante el
tunning.
Luego de modificar la sentencia o el parámetro se debe correr de
nuevo esta herramienta para ver que, como y cuanto se mejoro con
respecto a la versión anterior.
40. El siguiente es un ejemplo de un plan de
ejecución desde la aplicación IBM Data Studio
3.1.1 para la sentencia:
SELECT DECIMAL(AVG(salary),12,2) as
average_sal, location, deptname
FROM staff a, org b
WHERE b.deptnumb=a.dept
GROUP BY dept,location, deptname
ORDER BY average_sal DESC
42. Reduce la sobre carga por re ejecución de planes de acceso modificando
sentencias SQL dinámicas en el servidor de base de datos, de modo que
sentencias similares pero no idénticas puedan compartir el mismo plan
de acceso.
En bases de datos OLTP, sentencias simples podrían ser generadas
repetitivamente con diferentes valores literales. En estos casos el costo
de recompilar la sentencia puede agregar una sobrecarga significativa.
Esta herramienta evita esta sobrecarga permitiendo que sentencias
compiladas sean reusadas sin importar el valor de los literales.
El statement concentrator esta deshabilitado por defecto. Puede ser
habilitado para todas las sentencias dinámicas en la base de datos
asignando el parámetro smt_conc al valor LITERALS.
43. Ejemplo.
Estas dos sentencias son ejecutadas.
select firstnme, lastname from employee where empno=’000020’
select firstnme, lastname from employee where empno=’000070’
Las sentencias comparten la misma entrada en el package cache y
esas sentencias usan el siguiente forma:
select firstnme, lastname from employee where empno=:L0
DB2 provee el valor de: L0 ('000020' o '000070'), basado en el
literal que fue usando en la sentencia original.
44. El sistema operativo debe estar instalado sobre un
almacenamiento exclusivo. Esto es dedicar un LUN en el servidor
solo para alojar la instalación del sistema operativo de modo que
las cargas de IO del sistema operativo no compitan con las cargas
generadas por la base de datos en los LUN donde se ubiquen los
archivos de datos.
Separar datos de archivos log. El servidor debe estar configurado
para brindar almacenamiento exclusivo para estas dos cargas de
datos.
Utilice file Systems en lugar de dispositivos raw.
Instalación periódica de patchs o hot fixes del sistema
operativo.