SlideShare ist ein Scribd-Unternehmen logo
1 von 44
UniversidadCenfotec.
Curso:Afinamiento de bases de datos.
Alumno:Andrés Calvo | Germán Rodríguez.
DB2
-for Z/os (mainframe).
- for i Series (midrange).
- for LUW (linux, unix, windows)
 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.
 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.
 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.
 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.
 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.
 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
 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
 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.
 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
 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.
 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.
 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.
 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.
 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.
 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.
 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.
 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.
 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.
 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.
 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
 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.
 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.
 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.
 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.
 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.
 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
 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
 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.
 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.
 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.
 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.
 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.
 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.
 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.
 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
 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.
 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.
 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.

Weitere ähnliche Inhalte

Was ist angesagt?

Requerimientos de instalacion
Requerimientos de instalacionRequerimientos de instalacion
Requerimientos de instalacion
Luis Maza
 
Dbms más utilizados
Dbms más utilizadosDbms más utilizados
Dbms más utilizados
jro1007
 
Visualfoxpro
VisualfoxproVisualfoxpro
Visualfoxpro
Juansito
 
Manual S Q L Sever2000( C E P S U N I)
Manual S Q L Sever2000( C E P S  U N I)Manual S Q L Sever2000( C E P S  U N I)
Manual S Q L Sever2000( C E P S U N I)
Julio Pari
 
Requeriminetos de sgbd oracle
Requeriminetos de sgbd oracleRequeriminetos de sgbd oracle
Requeriminetos de sgbd oracle
Marcos Vazquez
 

Was ist angesagt? (20)

Instalación de sgbd en diferentes plataformas de windows
Instalación de sgbd en diferentes plataformas de windowsInstalación de sgbd en diferentes plataformas de windows
Instalación de sgbd en diferentes plataformas de windows
 
Cuadro comparativo sgbd
Cuadro comparativo sgbdCuadro comparativo sgbd
Cuadro comparativo sgbd
 
Requerimientos de instalacion
Requerimientos de instalacionRequerimientos de instalacion
Requerimientos de instalacion
 
Base de dato
Base de  dato Base de  dato
Base de dato
 
visual fox pro
visual fox provisual fox pro
visual fox pro
 
Funciones sgbd
Funciones sgbdFunciones sgbd
Funciones sgbd
 
Preguntas clase 07
Preguntas clase 07Preguntas clase 07
Preguntas clase 07
 
Taller de Base de Datos - Unidad 2 lenguage DDL
Taller de Base de Datos - Unidad 2 lenguage DDLTaller de Base de Datos - Unidad 2 lenguage DDL
Taller de Base de Datos - Unidad 2 lenguage DDL
 
Dbms más utilizados
Dbms más utilizadosDbms más utilizados
Dbms más utilizados
 
Ibm db2
Ibm db2Ibm db2
Ibm db2
 
Visualfoxpro
VisualfoxproVisualfoxpro
Visualfoxpro
 
Gestores de bases de datos cuadros comparativos
Gestores de bases de datos cuadros comparativosGestores de bases de datos cuadros comparativos
Gestores de bases de datos cuadros comparativos
 
Manual S Q L Sever2000( C E P S U N I)
Manual S Q L Sever2000( C E P S  U N I)Manual S Q L Sever2000( C E P S  U N I)
Manual S Q L Sever2000( C E P S U N I)
 
Manual de instalacion de Mongo db
Manual de instalacion de Mongo dbManual de instalacion de Mongo db
Manual de instalacion de Mongo db
 
Requeriminetos de sgbd oracle
Requeriminetos de sgbd oracleRequeriminetos de sgbd oracle
Requeriminetos de sgbd oracle
 
VISUAL CAJA 3D x2 folleto
VISUAL CAJA 3D x2 folletoVISUAL CAJA 3D x2 folleto
VISUAL CAJA 3D x2 folleto
 
Base de Datos en Microsoft SQL Server
Base de Datos en Microsoft SQL ServerBase de Datos en Microsoft SQL Server
Base de Datos en Microsoft SQL Server
 
Taller de Base de Datos - Unidad 4 seguridad
Taller de Base de Datos - Unidad 4 seguridadTaller de Base de Datos - Unidad 4 seguridad
Taller de Base de Datos - Unidad 4 seguridad
 
Apache Derby
Apache DerbyApache Derby
Apache Derby
 
Comparativa SGBDR
Comparativa SGBDRComparativa SGBDR
Comparativa SGBDR
 

Andere mochten auch (7)

WILDER,BLAS N. Afinamiento
WILDER,BLAS N. AfinamientoWILDER,BLAS N. Afinamiento
WILDER,BLAS N. Afinamiento
 
Abc Del Motor
Abc Del MotorAbc Del Motor
Abc Del Motor
 
Mantenimiento de automoviles
Mantenimiento de automovilesMantenimiento de automoviles
Mantenimiento de automoviles
 
Partes principales de un carro
Partes principales de un carroPartes principales de un carro
Partes principales de un carro
 
Ibm db2 10.5 for linux, unix, and windows getting started with db2 installa...
Ibm db2 10.5 for linux, unix, and windows   getting started with db2 installa...Ibm db2 10.5 for linux, unix, and windows   getting started with db2 installa...
Ibm db2 10.5 for linux, unix, and windows getting started with db2 installa...
 
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
 
IBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginnersIBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginners
 

Ähnlich wie Db2 10 afinamiento

Proyecto teórico práctico
Proyecto teórico prácticoProyecto teórico práctico
Proyecto teórico práctico
Titiushko Jazz
 
cuadro_comparativo_SGBD_top_10.docx (1).docx
cuadro_comparativo_SGBD_top_10.docx (1).docxcuadro_comparativo_SGBD_top_10.docx (1).docx
cuadro_comparativo_SGBD_top_10.docx (1).docx
Igor Rodriguez
 
Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.
Julicamargo
 

Ähnlich wie Db2 10 afinamiento (20)

Proyecto teórico práctico
Proyecto teórico prácticoProyecto teórico práctico
Proyecto teórico práctico
 
Administracion de base_de_datos
Administracion de base_de_datosAdministracion de base_de_datos
Administracion de base_de_datos
 
cuadro_comparativo_SGBD_top_10.docx (1).docx
cuadro_comparativo_SGBD_top_10.docx (1).docxcuadro_comparativo_SGBD_top_10.docx (1).docx
cuadro_comparativo_SGBD_top_10.docx (1).docx
 
Base de dato act4
Base de  dato act4Base de  dato act4
Base de dato act4
 
Comparación SMBD
Comparación SMBDComparación SMBD
Comparación SMBD
 
Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.
 
Smbd
SmbdSmbd
Smbd
 
Unidad 1 - Clase 2 de Base de Datos
Unidad 1 - Clase 2 de Base de DatosUnidad 1 - Clase 2 de Base de Datos
Unidad 1 - Clase 2 de Base de Datos
 
La base de datos
La base de datosLa base de datos
La base de datos
 
Taller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccion
 
Guia de estudio_oracle 11 g
Guia de estudio_oracle 11 gGuia de estudio_oracle 11 g
Guia de estudio_oracle 11 g
 
Guia de-estudio-oracle-11-g-pdf
Guia de-estudio-oracle-11-g-pdfGuia de-estudio-oracle-11-g-pdf
Guia de-estudio-oracle-11-g-pdf
 
Trabajo nuevo manejadores base de datos
Trabajo nuevo manejadores base de datosTrabajo nuevo manejadores base de datos
Trabajo nuevo manejadores base de datos
 
Perspectiva practica de la administracion de base de datos
Perspectiva practica de la administracion de base de datosPerspectiva practica de la administracion de base de datos
Perspectiva practica de la administracion de base de datos
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Infome sgbd
Infome sgbdInfome sgbd
Infome sgbd
 
Base de datos
Base de datosBase de datos
Base de datos
 
Funciones del DBA, SA Y DA
Funciones del DBA, SA Y DAFunciones del DBA, SA Y DA
Funciones del DBA, SA Y DA
 
Base de Datos Grupo Los Informaticos
Base de Datos Grupo Los InformaticosBase de Datos Grupo Los Informaticos
Base de Datos Grupo Los Informaticos
 
Eduardo hiram godínez aguirre inv dbms
Eduardo hiram godínez aguirre   inv dbmsEduardo hiram godínez aguirre   inv dbms
Eduardo hiram godínez aguirre inv dbms
 

Db2 10 afinamiento

  • 1. UniversidadCenfotec. Curso:Afinamiento de bases de datos. Alumno:Andrés Calvo | Germán Rodríguez.
  • 2. DB2 -for Z/os (mainframe). - for i Series (midrange). - for LUW (linux, unix, windows)
  • 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.
  • 14.
  • 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.
  • 16.
  • 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.
  • 26.
  • 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
  • 41.
  • 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.