Documentos de Académico
Documentos de Profesional
Documentos de Cultura
s a
)h a
o m
a ilฺc ideฺ
Oracle Database
gm 11g:
t G u
i n g den Ajuste de
@
Rendimiento
a s a tu
( j S
g ó n
e t his
A ra Volumen
u s I • Guía del Alumno
ez se t o
c h
S an licen
n d ra able
l e xa sfer
u l y A n-tran
J no
D50317CS20
Edición 2.0
Junio de 2010
D73949
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Autor Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Aju Kumar ( j
Aviso de Marca Registradaas is St
g ó n th
Raj Kumar
a e
Oracle and Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos
Vijayalakshmi Narasimhan
z Ar to us
los demás nombres pueden ser marcas comerciales de sus respectivos propietarios.
n c he nse
Diseñador Gráfico
S a lice
d
Satish Bettegowda
n ra able
l e xa sfer
l A tran
yEditores
u -
J Syed noAlin
Shaik Mahaboob Basha
Michael Sebastian
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Contenido
1 Introducción
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
S a 2-7
Objetivos de Ajuste
l i c e
Eventos
n d rade Tiempo
a b lePrincipales 2-8
a sdefeBase
xTiempo r de Datos 2-9
l e
l t r an
y A n-Dimensiones de Ajuste de Tiempo de CPU y de Espera 2-10
u
J no Modelo de Tiempo: Visión General 2-11
Jerarquía de las Estadísticas de Modelo de Tiempo 2-12
Ejemplo de Modelo de Tiempo 2-14
Prueba 2-15
Vistas de Rendimiento Dinámico 2-16
Vistas de Rendimiento Dinámico: Ejemplos de Uso 2-17
Vistas de Rendimiento Dinámico: Consideraciones 2-18
Niveles de Estadísticas 2-19
Estadísticas de Actividad de la Instancia y Eventos de Espera 2-21
Clases de Estadísticas del Sistema 2-23
Visualización de Estadísticas 2-24
Visualización de Estadísticas de SGA 2-26
Eventos de Espera 2-27
Uso de la Vista V$EVENT_NAME 2-28
Clases de Espera 2-29
iii
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Prueba 2-36
Uso de las Funciones de los Paquetes 2-37
Acceso a la Página Inicial de la Base de Datos 2-39
Información de Rendimiento en la Página Inicial de la Base de Datos 2-40
Visualización del Log de Alertas 2-42
Uso de la Información del Log de Alertas para Facilitar el Ajuste 2-43
Archivos de Rastreo de Usuarios 2-45
Archivos de Rastreo de Procesos en Segundo Plano 2-46
s a
Prueba 2-47
) h a
Resumen 2-48
o m
Visión General de la Práctica 2: Uso de Herramientas Básicas 2-49
a ilฺc ideฺ
@ gm t Gu
3 Uso del Repositorio de Carga de Trabajo Automáticang
i d e n
Objetivos 3-2 a
as is Stu
( j
nVisión General
Repositorio de Carga de Trabajo Automática:
g ó e t h 3-3
A ra Automática
Datos del Repositorio de Carga de Trabajo
u s 3-4
ez 3-5se t
Repositorio de Carga de Trabajo o
c h
Database Control y AWR
S an 3-6licen
d r a bdeleInstantáneas de AWR 3-7
Política de Depuración
Valores adenInstantáneas
ra de AWR 3-8
e x s f e
l y Al tranManuales de AWR 3-9
Instantáneas
Ju Gestión
n o n-de Instantáneas con PL/SQL 3-10
Generación de Informes de AWR en EM 3-11
Generación de Informes de AWR en SQL*Plus 3-12
Lectura del Informe de AWR 3-13
Instantáneas y Comparaciones de Períodos 3-14
Compare Periods: Ventajas 3-15
Compare Periods: Resultados 3-16
Compare Periods: Informe 3-17
Compare Periods: Perfil de Carga 3-18
Compare Periods: Eventos Principales 3-19
Prueba 3-20
Resumen 3-21
Visión General de la Práctica 3: Uso de Herramientas Basadas en AWR 3-22
iv
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
4 Definición de Problemas
Objetivos 4-2
Definición del Problema 4-3
Limitación del Ámbito 4-4
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
l e xa sfer
Resumen 4-26
y A n-tran
Visión General de la Práctica 4: Identificación del Problema 4-27
u l
J no5 Uso de Métricas y Alertas
Objetivos 5-2
Métricas y Alertas 5-3
Limitación de las Estadísticas Básicas 5-4
Herramientas Delta Típicas 5-5
Oracle Database 11g Solución: Métricas 5-6
Ventajas de las Métricas 5-7
Visualización de la Información del Historial de Métricas 5-8
Uso de EM para Ver Detalles de Métricas 5-9
Histogramas Estadísticos 5-10
Vistas de Histograma 5-11
Alertas Generadas por el Servidor 5-12
Modelo de Uso de Alertas 5-13
Definición de Umbrales 5-14
Creación y Prueba de una Alerta 5-15
v
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
l e xa sfer
Cambio de Valores de Umbrales Adaptativos 6-21
y A n-tran
Prueba 6-22
u l
J no Resumen 6-23
Práctica 6: Visión General Uso de Líneas Base de AWR 6-24
vi
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Prueba 7-19
Historial de Sesiones Activas: Visión General 7-20
Historial de Sesiones Activas: Mecanismos 7-21
Creación de Ejemplos de ASH: Ejemplo 7-22
Acceso a Datos ASH 7-23
Análisis de Datos ASH 7-24
Generación de Informes ASH 7-25
Script del Informe ASH 7-26
s a
Informe ASH: Sección General 7-27
) h a
Estructura del Informe ASH 7-28
o m
Informe ASH: Activity Over Time 7-29
a ilฺc ideฺ
gm t Gu
Nuevas o Mejoradas Vistas de Repositorio de Carga de Trabajo Automática 7-30
@
Prueba 7-31
a i ng uden
Resumen 7-32
( j as is St
n th
Visión General de la Práctica 7: Uso de Herramientas Basadas en AWR 7-33
g ó
a e
z Ar to us
he nse
8 Supervisión de Aplicaciones
Objetivos 8-2 nc
¿Qué esaunS
a lic8-3e
n d r ableServicio?
e x a sfdeerServicio 8-4
Atributos
l y Al Tipos
t r a nde Servicios 8-5
Ju non-Creación de Servicios 8-6
Gestión de Servicios en un Entorno de Instancia Única 8-7
¿Dónde se Utilizan los Servicios? 8-8
Uso de Servicios con Aplicaciones Cliente 8-9
Uso de Servicios con el Gestor de Recursos 8-10
Servicios y Gestor de Recursos con EM 8-11
Servicios y Gestor de Recursos: Ejemplo 8-12
Servicios y Programador con EM 8-13
Servicios y Programador: Ejemplo 8-15
Uso de Servicios con Umbrales de Métrica 8-16
Cambio de Umbrales de Servicio con EM 8-17
Servicios y Umbrales de Métrica: Ejemplo 8-18
Agregación y Rastreo de Servicios 8-19
Página de Rendimiento de Servicios Principales 8-20
Configuración de Agregación de Servicios 8-21
Agregación de Servicios: Ejemplo 8-22
vii
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Resumen 8-28
Visión General de la Práctica 8: Uso de Servicios 8-29
l e xa sfer
Lista de Supervisión de SQL 9-20
u l y A n-tran
Detalles de Ejecución de SQL Supervisada 9-21
J no Informe de Supervisión de SQL 9-22
Prueba 9-23
¿Qué es un Plan de Ejecución? 9-24
Métodos para Ver los Planes de Ejecución 9-25
Usos de Planes de Ejecución 9-27
Paquete DBMS_XPLAN: Visión General 9-28
Comando EXPLAIN PLAN 9-30
Comando EXPLAIN PLAN: Ejemplo 9-31
Comando EXPLAIN PLAN: Salida 9-32
Lectura de un Plan de Ejecución 9-33
Uso de la Vista V$SQL_PLAN 9-34
Columnas de V$SQL_PLAN 9-35
Consulta de V$SQL_PLAN 9-36
Vista V$SQL_PLAN_STATISTICS 9-37
Consulta de AWR 9-38
viii
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
ix
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
S a11-7 lice
n d ra able
Creación de Índices
x a sde
Otras Opciones
f e r
Índices 11-8
e
Al detraAcceso
Asesor n SQL 11-9
l y n- 11-10
Ju Prueba
n o
Mantenimiento de Tablas para el Rendimiento 11-11
Métodos de Reorganización de Tablas 11-12
Gestión del Espacio 11-14
Gestión de Extensiones 11-15
Extensiones Gestionadas Localmente 11-16
Extensiones Grandes: Consideraciones 11-17
Almacenamiento de Datos de Tabla 11-19
Anatomía de un Bloque de Base de Datos 11-20
Reducción de las Visitas al Bloque 11-21
Parámetro DB_BLOCK_SIZE 11-22
Tamaño de Bloque Pequeño: Consideraciones 11-23
Tamaño de Bloque Grande: Consideraciones 11-24
Asignación de Bloques 11-25
Listas de Bloques Libres 11-26
Gestión de Espacio de Bloques 11-27
x
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
l e xa sfer
Prueba 11-56
y A n-tran
Resumen 11-57
u l
J no Visión General de la Práctica 11: Reducción de Costos 11-58
xi
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
l e xa sfer
Uso de Perfiles SQL 13-17
y A n-tran
Asesor de Ajustes SQL: Visión General 13-18
u l
J no Uso del Asesor de Ajustes SQL 13-19
Opciones del Asesor de Ajustes SQL 13-20
Recomendaciones del Asesor de Ajustes SQL 13-21
Uso del Asesor de Ajustes SQL: Ejemplo 13-22
Planes de Ejecución Alternativos 13-23
Prueba 13-25
Uso del Asesor de Acceso SQL 13-26
Visualización de Recomendaciones 13-28
Visualización de Detalles de Recomendación 13-29
Gestión de Planes SQL: Visión General 13-30
Línea Base de Plan SQL: Arquitectura 13-31
Carga de Líneas Base de Plan SQL 13-33
Evolución de las Líneas Base de Plan SQL 13-34
Atributos Importantes del Plan SQL de Línea Base 13-35
Selección del Plan SQL 13-37
Supuestos Posibles de Gestión de Planes SQL 13-39
xii
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Supuesto con SQL Performance Analyzer y la Línea Base de Plan SQL 13-40
Carga Automática de una Línea Base de Plan SQL 13-41
Política de Depuración de Base de Gestión SQL 13-42
Enterprise Manager y Líneas Base de Plan SQL 13-43
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Prueba 13-44
Resumen 13-45
Práctica 13: Visión General del Uso de Gestión de Planes SQL 13-46
( j as is St
Consideraciones sobre la Reproducción 14-12
n
Opciones de Reproducción 14-13
g ó th
a e
Ar to us
Análisis de Reproducción 14-15
z
n c he nse
Flujo de Trabajo de Reproducción de Base de Datos en Enterprise Manager 14-17
Captura de Cargas de Trabajo con Enterprise Manager 14-18
S a lice
n d ra able
Asistente de Captura: Plan Environment 14-19
l e xa sfer
Asistente de Captura: Options 14-20
y A n-tran
Asistente de Captura: Parameters 14-21
u l
J no Visualización de Progreso de Captura 14-22
Visualización de Informe de Captura 14-23
Exportación de Datos de AWR de Captura 14-24
Prueba 14-25
Visualización de Historial de Captura de Carga de Trabajo 14-26
Procesamiento de Carga de Trabajo Capturada 14-27
Uso del Asistente de Preprocesamiento de Carga de Trabajo Capturada 14-28
Uso del Asistente de Reproducción de Carga de Trabajo 14-29
Replay Workload: Prerequisites 14-30
Replay Workload: Choose Initial Options 14-32
Replay Workload: Customize Options 14-33
Replay Workload: Prepare Replay Clients 14-34
Replay Workload: Wait for Client Connections 14-35
Replay Workload: Replay Started 14-36
Visualización de Progreso de Reproducción de Carga de Trabajo 14-37
Visualización de Estadísticas de Reproducción de Carga de Trabajo 14-38
xiii
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Prueba 14-45
Resumen 14-46
Práctica 14: Visión General 14-47
l e xa sfer
¿Se Están Compartiendo los Cursores? 15-21
y A n-tran
Uso Compartido de Cursores 15-23
u l
J no Uso Compartido del Cursor Adaptativo: Ejemplo 15-25
Vistas de Uso Compartido del Cursor Adaptativo 15-27
Interacción con el Uso Compartido del Cursor Adaptativo 15-28
Reducción del Costo de los Análisis Ligeros 15-29
Prueba 15-30
Ajuste de Tamaño del Pool Compartido 15-31
Asesoramiento del Pool Compartido 15-32
Asesor del Pool Compartido 15-34
Cómo Evitar la Fragmentación 15-35
Requisitos de Memoria Grande 15-36
Ajuste del Espacio Reservado del Pool Compartido 15-38
Mantenimiento de Objetos Grandes 15-40
Caché de Diccionario de Datos 15-42
Faltas de Caché de Diccionario 15-43
Caché de Resultados de Consultas SQL: Visión General 15-44
Gestión de la Caché de Resultados de Consultas SQL 15-45
xiv
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
l e xa sfer
Ratio de Aciertos de Caché de Buffers: Consideraciones 16-16
u l y A n-tran
Interpretación del Ratio de Aciertos de la Caché de Buffers 16-17
J no Esperas de Lectura 16-19
Esperas de Buffers Libres 16-21
Soluciones 16-22
Ajuste de Tamaño de Caché de Buffers 16-23
Parámetros de Tamaño de Caché de Buffers 16-24
Prueba 16-25
Parámetro Dinámico del Asesor de Caché de Buffers 16-26
Vista del Asesor de Caché de Buffers 16-27
Uso de la Vista V$DB_CACHE_ADVICE 16-28
Uso del Asesor de Caché de Buffers con EM 16-29
Almacenamiento en Caché de Tablas 16-30
Varios Pools de Buffers 16-31
Activación de Varios Pools de Buffers 16-33
Cálculo del Ratio de Aciertos para Varios Pools 16-34
Varios Tamaños de Bloque 16-36
Varios Escritores de Base de Datos 16-37
xv
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
e x anUsosde
Control del
f e raMemoria SQL 17-10
la
l y Al tradel
Supervisión n Uso de la Memoria SQL: Ejemplos 17-12
Ju Ajuste o - Uso de la Memoria SQL 17-13
ndel
n
Estadísticas de Consejo de Destino de PGA 17-14
Histogramas de Consejo de Destino de PGA 17-15
PGA Automática y Enterprise Manager 17-16
PGA Automática e Informes de AWR 17-17
Gestión de Tablespaces Temporales: Visión General 17-18
Tablespaces Temporales: Recomendaciones 17-19
Configuración de Tablespaces Temporales 17-20
Grupos de Tablespaces Temporales: Visión General 17-22
Grupos de Tablespaces Temporales: Ventajas 17-23
Creación de Grupos de Tablespaces Temporales 17-24
Mantenimiento de Grupos de Tablespaces Temporales 17-25
Visualización de Grupos de Tablespaces 17-26
Control de los Tablespaces Temporales 17-27
Reducción de Tablespaces Temporales 17-28
Opción de Tablespace para Crear una Tabla Temporal 17-29
xvi
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Prueba 17-30
Resumen 17-31
Visión General de la Práctica 17: Ajuste de la Memoria PGA 17-32
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
( j as is St
Comportamiento de los Parámetros de SGA de Ajuste Automático 18-14
n th
Comportamiento de los Parámetros de SGA de Ajuste Automático 18-15
g ó
a e
Ar to us18-17
Uso de la Vista V$PARAMETER 18-16
z
Cambio de Tamaño de e seSGA_TARGET
nclahGestión
Desactivaciónade
i c enAutomática de Memoria Compartida 18-18
r S
a deblASMM
Configuración l
e 18-19
Asesor
d
an sdefeSGA ra 18-20
e x
l y Al Control
t r a n de ASMM 18-21
Ju non-Gestión Automática de Memoria: Visión General 18-22
Parámetros de Memoria de Oracle Database 18-24
Dependencia de Parámetros de Memoria Automática 18-25
Activación de la Gestión Automática de Memoria 18-26
Control de la Gestión Automática de Memoria 18-27
DBCA y Gestión Automática de Memoria 18-29
Prueba 18-30
Resumen 18-31
Práctica 18: Visión General Uso del Ajuste Automático de Memoria 18-32
19 Ajuste de E/S
Objetivos 19-2
Arquitectura de E/S 19-3
Características del Sistema de Archivos 19-4
Modos de E/S 19-5
E/S Directa 19-6
xvii
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
( j as is St
Instrucciones de Duplicación de ASM 19-28
n
Granularidad de Segmentación de ASM 19-29
g ó th
a e
Ar to us
¿Cuál Es el Tipo de Segmentación que Funciona Mejor? 19-30
z
n c he nse
Sólo Segmentación de ASM 19-31
LUN Segmentadas en RAID de Hardware 19-32
S a lice
n d ra able
Instrucciones de ASM 19-33
l e xa sfer
Parámetros de Inicialización de Instancias de ASM 19-34
y A n-tran
Vistas de Rendimiento Dinámico 19-35
u l
J no Control de Operaciones de Larga Ejecución con V$ASM_OPERATION 19-37
Diagnóstico del Rendimiento de Instancias de ASM 19-38
Página Performance de ASM 19-39
Cambios de Parámetros de Instancias de Base de Datos 19-40
Escalabilidad de ASM 19-41
Prueba 19-42
Resumen 19-43
xviii
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
l y Al Scripts
t r a n de Statspack B-4
Ju non-Instalación de Statspack B-6
Captura de Instantáneas de Statspack B-7
Configuración de Captura de Datos de Instantáneas B-8
Niveles de Instantánea de Statspack B-9
Líneas Base de Statspack y Depuración B-11
Creación de Informes con Statspack B-13
Consideraciones de Statspack B-14
Informes de Statspack y AWR B-16
Lectura de un Informe de Statspack o AWR B-17
Secciones de Despliegue del Informe de Statspack/AWR B-18
Ejemplos de Despliegue de Informe B-20
Sección Load Profile B-21
Sección Time Model B-22
Statspack y AWR B-23
Resumen B-24
Visión General de la Práctica: Uso de Statspack B-25
xix
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates. FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Prefacio
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates. FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Perfil
Cualificación Necesaria para el Curso
Antes de empezar este curso, debería estar capacitado para realizar las funciones de
un DBA a nivel de entrada que ha realizado los cursos Oracle Database 11g: Taller
de Administración 1 y 2 o experiencia equivalente. Se recomienda que haya
realizado también el curso Oracle Database 11g: Conceptos Fundamentales de SQL
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
Prefacio - 3
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Publicaciones Relacionadas
Publicaciones de Oracle
Título Número de Artículo
Oracle Database Administrator's Guide 11g (11.2) E10595-06
Oracle Database 2 Day + Performance Tuning Guide
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Prefacio - 4
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Convenciones Tipográficas
En las dos listas siguientes se explican las convenciones tipográficas de Oracle
University para palabras que aparecen en texto normal o en ejemplos de código.
Prefacio - 5
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Prefacio - 6
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates. FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Introducción
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Organización
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
• Supervisión y Diagnóstico
– Supervisión mediante las herramientas disponibles
– Identificación del problema
– Uso de herramientas basadas en AWR
• Ajustes SQL
– Identificación y ajuste de sentencias SQL mediante la
influencia en el optimizador s a
h a
– Gestión de cambios m) o
— Gestión del Rendimiento SQL
a ilฺc ideฺ
— Real Application Testing
@ gm t Gu
• Ajuste de Instancias a i ng uden
– Ajuste de componentes denmemoria (jas his St
– Ajuste del uso de espacio r a góy E/S s e t
z A to u
c e
h nse
n e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
S
Copyright
ra able
n d
Organización
l e xa sfer
l
Esta
A se centra
y clase - t r anen las tareas de ajuste del rendimiento que se espera que realice un DBA en el
u
Jentornonodenbase de datos de una única instancia. Los ajustes SQL se limitan a las tareas relacionadas
con el ajuste de estructuras de datos y al mantenimiento de estadísticas, porque el DBA no tiene
normalmente acceso o permiso para cambiar el código SQL. Este curso se organiza en tres divisiones
principales:
• Supervisión y Diagnóstico
• Ajustes SQL
• Ajuste de Instancias
Supervisión y Diagnóstico incluye las herramientas de supervisión, diagnóstico e informes que
necesita el DBA para identificar los problemas de ajuste de forma proactiva. Se utilizan tanto las
herramientas básicas que se incluyen con cada base de datos como aquéllas que necesitan los
paquetes de Enterprise Manager.
Ajustes SQL incluye la identificación de sentencias SQL de carga alta, mediante la influencia en el
optimizador y la gestión de cambios. Se abordan los conceptos básicos para la detección de las
sentencias SQL con problemas y la lectura y el seguimiento del plan de ejecución. Además, esta
división incluye métodos para la gestión de cambios del plan SQL debido al crecimiento o pequeños
cambios, así como métodos de prueba para anticipar los principales cambios en el entorno.
Ajuste de Instancias incluye los componentes de memoria, la gestión de espacio y E/S. Esta división
aborda el uso de las herramientas de diagnóstico para determinar el área problemática específica e
implementar una solución.
Agenda
1 1 Introducción
1 4 Definición de Problemas
n d a b l
l e xa sfer
u l y A n-tran
J no
Agenda
Día Lección Tema
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
3 11 Reducción de Costos
No se Incluye
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
• Disponibilidad 7x24
• Operaciones en línea
• Rendimiento de copia de seguridad
• Operaciones paralelas
• Problemas de rendimiento de Streams y Data Guard
• Real Application Clusters a
• Sistema operativo: problemas específicos h a s
m )
o
• ilฺc ideฺ
Problemas específicos de la aplicación, como el manejo
a
de LOB gm u
@ t G
g
in tude n
s a
n (ja his S
r a gó se t
z A to u
c e
h nse
n e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
S
Copyright
ra able
n d
e
No se Incluye
l xa sfer
•lyElAdiagnóstico
- t r ande problemas de rendimiento en cualquier configuración de una instancia de
u
J Oracle onempieza con las mismas técnicas básicas. Los problemas específicos de determinadas
n
funciones y opciones se abordan en clases específicamente diseñadas para ello.
• Los problemas de rendimiento con opciones de alta disponibilidad se abordan en sus respectivas
clases sobre Oracle Streams, Oracle Data Guard y Oracle Real Application Clusters.
• La configuración de rendimiento de copia de seguridad se aborda en la clase Taller de
Administración II.
• Las operaciones paralelas y particiones se tratan en los planes de estudios de almacenes de
datos.
• Los problemas específicos de la aplicación, como el manejo de los valores de parámetros de
almacenamiento para objetos grandes (LOB), se tratan en las guías del desarrollador de
aplicaciones.
n d a b l
¿Quién sel e xa sdel
Encarga f erAjuste?
l y A npersona
Cualquier
u - t ranimplicada en el software de Oracle Database, incluidos los arquitectos del sistema,
Jdiseñadores,
no desarrolladores, administradores de la base de datos, administradores del sistema,
administradores de almacenamiento y administradores de red debe pensar en el rendimiento.
Si se producen problemas, el administrador de la base de datos (DBA) es el que normalmente intenta
resolverlos en primera instancia. Por lo tanto, el DBA debe tener una visión general precisa de todas
las aplicaciones de la base de datos y de las interacciones que se producen entre ellas. Los DBA
consiguen con frecuencia la ayuda de los desarrolladores para el ajuste de aplicaciones o de los
administradores del sistema para el ajuste del sistema operativo. Este curso está destinado a los DBA
responsables del ajuste y de la supervisión de Oracle Database. Sin embargo, cualquier persona
implicada en el diseño, desarrollo y despliegue de Oracle Database también se puede beneficiar.
• Ajuste de instancias:
– Memoria
– Estructura de la base de datos s a
) h a
– Configuración de instancias o m
• Interacciones del sistema operativo: a ilฺc ideฺ
– E/S @ gm t Gu
Compartido con el ng
i d e n
– Intercambio administrador del s a
asistema tu
( j S
– Parámetros g ó n
e t his
A ra us
h e z e to
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
¿Qué Ajusta
l e xael DBA?
s f er
l
Paray tener - an ajustado a la perfección, debe diseñar detenidamente los sistemas y las
A un tsistema
r
u
non Los problemas de rendimiento habituales se pueden agrupar en:
Japlicaciones.
• Problemas de aplicaciones: SQL escrito con deficiencias, recursos serializados y gestión de
sesiones deficiente
• Problemas de instancias: memoria, E/S y configuración de instancias
• Problemas del sistema operativo: intercambio, E/S, valores de parámetros y problemas de red
Sacará un gran provecho de su inversión de tiempo y esfuerzo si ajusta la aplicación. El ajuste de las
sentencias SQL, las rutas de acceso y las estructuras de almacenamiento son partes importantes del
ajuste de aplicaciones.
El ajuste de instancias y el ajuste de aplicaciones utilizan juegos diferentes de conocimientos y
herramientas. Hay disponibles cursos específicos sobre los conocimientos y las herramientas
concretas que se utilizan en el ajuste de aplicaciones. El ajuste de aplicaciones depende del tipo de
aplicación. Las aplicaciones de almacenamiento de datos y las aplicaciones de procesamiento de
transacciones en línea (OLTP) utilizan distintos métodos de acceso y estructuras de datos para un
mejor rendimiento. El ajuste del sistema operativo depende del sistema operativo que se utilice. Hay
disponibles cursos específicos sobre estas áreas: Oracle Database 11g: Taller de Ajustes SQL para el
ajuste de aplicaciones OLTP y el ajuste de sentencias y Oracle Database 11g: Implementación y
Administración de Almacenes de Datos para problemas de almacenes de datos.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
¿Cómo se Ajusta?
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Herramientas disponibles:
• Diagnóstico básico:
– Vistas de rendimiento dinámico
– Estadísticas
– Métricas
– Páginas de Enterprise Manager
• AWR o Statspack s a
) h a
• Monitor de Diagnóstico de Base de Datos Automáticoo m
(ADDM) a ilฺc ideฺ
• Scripts del DBA @ gm t Gu
g n in tude
s a
n (ja his S
r a gó se t
z A to u
c e
h nse
n e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
S
Copyright
ra able
n d
¿Cómo sel e xa sfer
Ajusta?
A diversas
•lyExisten
- t r an herramientas de ajuste disponibles, los detalles de uso de estas herramientas
u
nonpero la metodología es la misma.
J varían,
• Si tiene Oracle Database 11g Enterprise Edition con los paquetes de ajuste opcionales, el
Monitor de Diagnóstico de Base de Datos Automático (ADDM) está disponible junto con otras
herramientas basadas en el Repositorio de Carga de Trabajo Automática (AWR).
• Si dispone de Oracle Database 11g Standard Edition, la herramienta que debe utilizar es
Statspack.
• Los pasos para el uso de ambas herramientas, ADDM y Statspack, se tratan en este curso.
• Además, muchos DBA han desarrollado sus propias herramientas y scripts para el ajuste.
• Todas las herramientas de ajuste dependen de los diagnósticos básicos de las vistas de
rendimiento dinámico, las estadísticas y las métricas que recopila la instancia.
Metodología de Ajuste
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Pasos de ajuste:
• Identificar el ámbito del problema (sistema operativo, base
de datos, etc.).
• Ajustar lo siguiente en orden descendente:
– El diseño antes que el código de aplicación
– El código antes que la instancia
• Ajustar el área con las mayores ventajas potenciales: s a
)h a
– Identificar el problema de rendimiento (AWR, Statspack). o m
– Analizar el problema, buscar componentes sesgados a ilฺc yideฺ
ajustables. @ gm t Gu
i g den
npara
– Utilizar las herramientas adecuadas
a s a ajustar
t u los
componentes implicados. n ( j S
g ó e t his
• Parar el ajuste cuandoAse ra cumpla us el objetivo.
z t o
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Metodología
l e xade Ajuste
s f er
l y ACorporation
Oracle - t r anha desarrollado una metodología de ajuste basada en años de experiencia. La
u
non presentada en este curso también se presenta en la guía Oracle Database Performance
Jmetodología
Tuning Guide (Guía de Ajuste de Rendimiento de Oracle Database). Esta metodología se aplica con
independencia de las herramientas que utilice. La herramienta ADDM sigue esta metodología de
forma automática. Los pasos básicos son los siguientes:
• Compruebe las estadísticas del sistema operativo y el estado general del equipo antes de ajustar
la instancia para asegurarse de que el problema está en la instancia de la base de datos.
• Ajuste en orden descendente. Empiece con el diseño, después la aplicación y, a continuación, la
instancia. Por ejemplo, intente eliminar las exploraciones de tablas completas que provocan la
contención de E/S antes de ajustar el diseño del tablespace en el disco. El diseño debe utilizar
estructuras de datos adecuadas para las características de aplicación y de carga. Por ejemplo, los
índices de clave inversa pueden funcionar correctamente en un entorno RAC a la hora de reducir
los bloques activos debido a una clave primaria secuencial pero también puede derivar en un
gran número de bloques enviados a través de las interconexiones si cada instancia realiza
inserciones en la misma tabla. Las aplicaciones deben evitar procesos que necesitan
serialización mediante un único recurso. Un ejemplo sencillo de ello es un único generador de
números de comprobación utilizado por varios procesos. El ajuste a nivel de instancia se ve
limitado con frecuencia por las opciones de diseño y aplicación. Con las aplicaciones existentes,
este paso no suele estar disponible, ya que el diseño y el código no se pueden modificar.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
er
xaAjustesfEfectivos
Objetivoslede
Elly
A trajuste
-
objetivo del an es la eliminación de un problema definido. Los objetivos también se obtienen
u on de nivel de servicio (SLA) relacionados. El SLA suele ser un requisito contractual o
Jde losnacuerdos
de negocio que hay que cumplir. El objetivo puede estar basado en un SLA o en un problema. Por
ejemplo: el LA afirma que el tiempo de respuesta del usuario a una solicitud particular no debe
superar los 30 segundos. El problema es que el tiempo de respuesta medio es de 25 segundos y va en
aumento.
Un objetivo del ajuste es que el tiempo de respuesta del usuario a una solicitud particular sea de
20 segundos.
Tanto los objetivos de ajuste como los SLA deben tener tres características para ser efectivos. Deben
ser:
• Específicos
• Medibles
• Factibles
El objetivo “Hacer que la instancia se ejecute lo más rápido posible” no es específico. El objetivo
específico sería “La serie de informes de fin de mes se debe realizar en menos de 4 horas”.
Además, un objetivo debe ser rentable. Realizar el ajuste por el simple hecho de ajustar, o por gusto,
no es rentable.
definiciones específicas para el texto del objetivo. Si se cambia la exposición del objetivo por “El
tiempo de respuesta del usuario a una solicitud particular es de 20 segundos o menos”, se puede
determinar objetivamente cuándo se ha cumplido el objetivo.
Los objetivos factibles son objetivos posibles y que están dentro del control de las personas
responsables del ajuste.
A continuación, se enumeran ejemplos de objetivos factibles para un DBA típico:
• Cuando el objetivo es ajustar la instancia para crear una aplicación de alto rendimiento, pero no
a
se le permite cambiar el SQL ni las estructuras de datos, sólo es posible realizar una cantidad
s
limitada de ajustes. ) h a
o m
• Cuando el objetivo es conseguir un tiempo de respuesta de 1 segundo, pero la latencia de red
a ilฺc ideฺ
entre el servidor y el cliente es de 2 segundos. Sin cambiar la red, es imposible lograr un tiempo
de respuesta de 1 segundo.
@ gm t Gu
i ng uden
Ni siquiera en estas situaciones es imposible realizar cambios en un sentido absoluto, pero el DBA
a
j as is St
siempre tiene restricciones de negocio que limitan la cantidad de dinero y recursos que puede dedicar
(
ó n th
a la solución. Por lo que cada objetivo debe tener en cuenta la relación costo-beneficio. Si un
g
a e
Ar to us
objetivo tiene un costo elevado pero que soluciona un problema con un costo mínimo, es mejor no
z
realizarlo.
n c he nse
a lice
Debería establecer siempre unos objetivos de ajuste medibles. Sin un objetivo de ajuste, es difícil
S
n d ra able
determinar si los ajustes que ha realizado son suficientes.
l e xa sfer
u l y A n-tran
J no
Prueba
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Resumen
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Objetivos
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
n d a b l
l e xa sfer
u l y A n-tran
J no
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
Herramientas disponibles:
• Básicas:
– Modelo de tiempo
– Eventos de espera principales
– Tablas y vistas de rendimiento dinámico
– Log de alertas
– Archivos de rastreo s a
)h a
– Páginas de Enterprise Manager m
o
• Complementarias: Statspack a ilฺc ideฺ
• Opciones: @ gm t Gu
a i ng uden
– Diagnostics Pack
( j as is St
– Tuning Pack g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e
Herramientas xade Ajuste
s f er del Rendimiento
•lyLas
- t an de Oracle Database se almacenan en diversas tablas y vistas. Algunas
A estadísticas
r
u
non se almacenan
J estadísticas
DBMS_STATS
en tablas permanentes, como las estadísticas que recopila
en objetos de base de datos para que las utilice el optimizador. Muchas de las
estadísticas que se utilizan para el ajuste del rendimiento se almacenan en tablas y vistas
dinámicas que están basadas en memoria. Estas estadísticas no se guardan cuando se cierra la
instancia.
• El log de alertas es un listado cronológico de los eventos de la base de datos y los mensajes
informativos. El log de alertas puede aportar información importante sobre el funcionamiento de
la base de datos, las áreas que se podrían ajustar e información de referencia relacionada con los
informes de ajuste.
• Los procesos en segundo plano y de usuario crean archivos de rastreo cuando se producen
determinados eventos. En ocasiones, estos archivos de rastreo le permiten comprender los
problemas de rendimiento., como advertencias en el archivo de rastreo de LGWR sobre
escrituras redo que tardan más de 500 ms, pero que principalmente se utilizan para capturar
condiciones de error e información de depuración.
• Statspack es un juego de procedimientos y scripts que se incluye con todas las ediciones del
software de Oracle Database. Diagnostics Pack es una opción con licencia independiente que es
necesaria para utilizar el repositorio de carga de trabajo automática (AWR) y las herramientas
basadas en AWR. Tuning Pack también posee una licencia independiente. Tuning Pack necesita
Diagnostics Pack. Diagnostic Pack y Tuning Pack sólo están disponibles con el software de
Enterprise Edition de Oracle Database.
Algunas de las páginas de Enterprise Manager relacionadas con el ajuste están disponibles para
cualquier nivel del software de Oracle Database: Personal, Standard Edition o Enterprise Edition.
Varias de las páginas de Enterprise Manager relacionadas con el ajuste requieren Diagnostic Pack o
Tuning Pack.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
Objetivos de Ajuste
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
ObjetivosledexaAjustesfer
n se pueden resumir con la siguiente frase: "Hacer más en menos tiempo". En
A tderaajuste
yobjetivos
l
Los
u -
Jfunciónnodencada entorno, esto se traduce en lo siguiente:
• Minimizar el tiempo de respuesta o reducir el tiempo de espera del usuario.
• Aumentar el rendimiento global, lo que significa reducir el tiempo para realizar un trabajo o un
juego de trabajos.
• Aumentar las capacidades de carga, lo que significa permitir más tareas o liberar capacidad para
realizar otras tareas.
En algunos entornos, hay que buscar un equilibrio. En entornos de procesamiento de transacciones en
línea (OLTP) de gran volumen, se puede permitir un tiempo de respuesta del usuario mayor para
obtener más transacciones totales de muchos usuarios. Los estudios demuestran que, en un entorno
basado en la Web, el tiempo de respuesta del usuario debe ser inferior a 7 segundos o el usuario se irá
a otro sitio. En este caso, todo lo demás está subordinado al tiempo de respuesta.
Los requisitos de negocio afectan a los objetivos de ajuste. El rendimiento puede estar limitado por
problemas de seguridad, como en el objetivo "Reducir el tiempo de recuperación". En un entorno de
negocio, donde el tiempo de inactividad se traduce en cientos o miles de dólares por minuto, la
sobrecarga que supone proteger la instancia de fallos y reducir el tiempo de recuperación es más
importante que el tiempo de respuesta del usuario. Por lo que la recuperación del ajuste debe
equilibrar la sobrecarga en curso de las escrituras en disco adicionales para mantener los archivos
redo log y el objetivo de proteger el negocio de las pérdidas.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Eventos ldee f er
a sPrincipales
xTiempo
Laly
A tra5 nTimed Foreground Wait Events es un buen punto de partida cuando se realiza el
u n- vista, puede ver los eventos de tiempo principales. Los eventos de tiempo
sección Top
Jajuste.nAosimple
principales siempre tienen valores. En este ejemplo, "free buffer waits" y "buffer busy waits"
consumen más del 75% del tiempo de base de datos al combinarse.
La sección de eventos de tiempo principales está disponible en ambos informes de AWR y Statspack.
En este informe de eventos se proporciona orientación para realizar un estudio más detallado. En este
caso, los dos principales eventos de tiempo indican un problema en la caché de buffers de la base de
datos.
Tiempo de Espera
de Base de Datos +
s a
)h a
Tiempo de CPUฺc de m
o ฺ
i l
Base de Datos
g m Guide
a
i n g@ dent
a s a tu
( j S
g ó n
e t his
A ra us
h e z e to
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
Tiempo de l e a desDatos
xBase f er
Elly
A traconsiste
ajuste no -sólo
n en reducir las esperas. Su objetivo es mejorar el tiempo de respuesta del
u on y/o minimizar el promedio de recursos que utiliza cada solicitud. En ocasiones, las dos
Jusuarionfinal
cosas van unidas pero, en otros casos, hay un equilibrio (por ejemplo, con una consulta paralela). En
general, se puede decir que el ajuste consiste en evitar el consumo o la retención de recursos sin
sentido.
Cualquier solicitud a la base de datos se compone de dos segmentos distintos: un tiempo de espera
(tiempo de espera de base de datos) y un tiempo de servicio (tiempo de CPU de base de datos). El
tiempo de espera es la suma de todas las esperas para acceder a diversos recursos de la instancia de
la base de datos. El tiempo de CPU es la suma del tiempo que se dedica a trabajar realmente en la
solicitud. Estos tiempos no se componen necesariamente de una espera y un bloque de tiempo de
CPU. A menudo, los procesos esperarán un período de tiempo corto para un recurso de base de datos
y, a continuación, se ejecutarán brevemente en la CPU y, así de forma repetida.
El ajuste consiste en reducir o eliminar el tiempo de espera, y en reducir el tiempo de CPU. Esta
definición se aplica a cualquier tipo de aplicación, procesamiento de transacciones en línea (OLTP) o
almacén de datos (DW).
Nota: un sistema muy ocupado muestra un tiempo de CPU de base de datos mayor y esto puede
inflar otros tiempos.
Tiempo
de CPU Posiblemente
necesite ajuste Aplicación
SQL escalable
s a
h a
No se m)
o
Necesita a ilฺc ideฺ
obtiene
ajuste de
@ gm mejorat G u
instancia/RAC
a i ealnagregar
ng udCPUs/nodos
( j as is St
g ó n thTiempo de
a e
z Ar to us espera
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Dimensiones
l e xade Ajuste
s f erde Tiempo de CPU y de Espera
Ally
A tran es importante que compare el tiempo de CPU con el tiempo de espera del
ajustar el-sistema,
u
Jsistema. n comparación permite determinar qué parte del tiempo de respuesta se invierte en
noEsta
trabajo útil y cuánto en esperar recursos potencialmente retenidos por otros procesos. Como norma
general, los sistemas en los que predomina el tiempo de CPU, normalmente necesitan menos ajuste
que aquellos en los que predomina el tiempo de espera. Sin embargo, unas sentencias SQL mal
escritas pueden provocar un uso intenso de CPU.
La proporción de tiempo de espera respecto al tiempo de CPU siempre tiende a aumentar a medida
que aumenta la carga en el sistema, los aumentos bruscos del tiempo de espera indican una
contención y se deben solucionar para contar con una buena escalabilidad.
Cuando el aumento del tiempo de espera indica una contención, al agregar más CPU a un nodo o
nodos a un cluster se proporcionarían ventajas muy limitadas. Por el contrario, un sistema en que la
proporción de tiempo de CPU no disminuye significativamente a medida que aumenta la carga, se
puede escalar mejor y probablemente se beneficiaría de la adición de CPU o instancias de Real
Application Clusters (RAC).
Nota: los informes del repositorio de carga de trabajo automática (AWR) y Statspack muestran el
tiempo de CPU junto con el tiempo de espera en la sección Top 5 Events, si la parte de tiempo de
CPU está entre los cinco eventos principales.
ar
ct
Jav
ne
a QL
• Se puede acceder a las estadísticas a
Co
PLS
través de:
SQL
– V$SYS_TIME_MODEL
s a
– V$SESS_TIME_MODEL
)h a
• El tiempo de base de datos representa el tiempo total m
a i lฺco deฺ
dedicado a realizar llamadas a la base de datos g m enG ui
las
sesiones de usuario.
i n g@ dent
• El objetivo del ajuste es reducir (eljatiempo sa Sdetubase de datos.
• Con el tiempo de base de datos, g ó n puede
e t hismedir el impacto en
el rendimiento de cualquier A ra entidad us de la base de datos.
z t o
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Modelo del e xa sVisión
Tiempo: f er General
A ansistema de Oracle Database participan muchos componentes y cada uno tiene su
el ajuste -detrun
Enly
u on de estadísticas. ¿Cómo se puede medir el beneficio previsto de una acción de ajuste en
Jpropionjuego
el sistema general? Por ejemplo, ¿el rendimiento general mejoraría si se pasase memoria desde la
caché de buffers al pool compartido? Si se observa el sistema en su conjunto, el tiempo es el único
denominador común para realizar comparaciones entre componentes. En el servidor de Oracle
Database, la mayoría de los asesores informan sobre sus conclusiones en términos de tiempo.
También existen unas estadísticas denominadas "Estadísticas de modelo de tiempo" que aparecen
como las vistas de rendimiento V$SYS_TIME_MODEL y V$SESS_TIME_MODEL. Esta
instrumentación ayuda al servidor de Oracle Database a identificar efectos cuantitativos en las
operaciones de la base de datos.
Lo más importante de las estadísticas del modelo de tiempo es el tiempo de base de datos. Esta
estadística representa el tiempo total dedicado a llamadas a la base de datos por sesiones de usuario e
indica la carga de trabajo total de la instancia. Es la suma de los tiempos de CPU y de espera de todas
las sesiones que no están esperando en eventos de espera inactivos (sesiones de usuario activas).
La finalidad del ajuste de un sistema de Oracle Database se podría definir como la reducción del
tiempo que dedican los usuarios a realizar alguna acción en la base de datos o simplemente la
reducción del tiempo de base de datos.
Otras estadísticas del modelo de tiempo indican efectos cuantitativos (en tiempo) en acciones
específicas, como operaciones de conexión, análisis pesados y ligeros, ejecución de PL/SQL y
ejecución de Java.
h e z e to
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
Jerarquíalede s er
xalas Estadísticas
f de Modelo de Tiempo
Enly
A n
tra se enumeran las relaciones entre las estadísticas de modelo de tiempo. Forman dos
Juárboles: n -
la diapositiva,
notiempo transcurrido en segundo plano y tiempo de base de datos. El tiempo que indica un
elemento secundario del árbol está incluido en el elemento principal de dicho árbol.
• Tiempo de base de datos: cantidad de tiempo transcurrido (en microsegundos) dedicado a
realizar llamadas a nivel de usuario de la base de datos. Aquí no se incluye el tiempo dedicado a
los procesos en segundo plano de instancias, como PMON. El tiempo de base de datos se mide
de manera acumulativa desde el momento en que se inició la instancia. Dado que el tiempo de
base de datos se calcula combinando los tiempos de todas las sesiones de usuario activas, es
posible que el tiempo de base de datos supere al tiempo real transcurrido desde que se inició la
instancia. Por ejemplo, una instancia que se haya estado ejecutando durante 30 minutos podría
tener cuatro sesiones de usuario activas cuyo tiempo de base de datos acumulativo fuera de
aproximadamente 120 minutos.
• CPU de base de datos: cantidad de tiempo de CPU (en microsegundos) dedicado a realizar
llamadas a nivel de usuario de la base de datos. Este tiempo incluye procesos en la cola de
ejecución.
• Tiempo transcurrido en cargas de secuencias: cantidad de tiempo transcurrido dedicado a
obtener el siguiente número de secuencia del diccionario de datos. Si una secuencia se almacena
en caché, ésta es la cantidad de tiempo dedicado a rellenar la caché cuando se agota. No se suma
ningún tiempo cuando se encuentra un número de secuencia en la caché. Para las secuencias que
no están almacenadas en caché, se suma algún tiempo por cada llamada a NEXTVAL.
de sentencias SQL. Tenga en cuenta que, para las sentencias SELECT, también se incluye la
cantidad de tiempo dedicado a realizar recuperaciones de resultados de consultas.
• Tiempo transcurrido en llamadas de gestión de conexiones: cantidad de tiempo transcurrido
dedicado a realizar llamadas de conexión y desconexión de sesiones.
• Tiempo transcurrido en análisis fallidos: cantidad de tiempo dedicado a realizar análisis SQL
que, en última instancia, producen algún error de análisis.
• Tiempo transcurrido en análisis fallidos (falta memoria compartida): cantidad de tiempo
dedicado a realizar análisis SQL que producen errores de falta de memoria compartida. a
a s
• Tiempo transcurrido en análisis pesados (criterio de uso compartido): cantidad de tiempo
h
)
transcurrido dedicado a realizar análisis pesados de SQL cuando el análisis pesado se debe a que
m
o
ilฺc ideฺ
no es posible compartir un cursor existente en la caché de SQL.
a
@ gm t Gu
• Tiempo transcurrido en análisis pesados (no coincidencia de enlace): cantidad de tiempo
transcurrido dedicado a realizar análisis pesados de SQL cuando el análisis pesado se debe a un
a i ng uden
error de coincidencia de tamaño o tipo de enlace con un cursor existente en la caché de SQL.
( j as is St
• Tiempo transcurrido en la ejecución de PL/SQL: cantidad de tiempo transcurrido dedicado a
g ó n th
e
ejecutar el intérprete de PL/SQL. Aquí no se incluye el tiempo dedicado a ejecutar o analizar
a
Ar to us
sentencias SQL de forma recurrente ni el tiempo dedicado a ejecutar Java Virtual Machine de
z
forma recurrente.
n c he nse
a lice
• Tiempo transcurrido en la compilación de PL/SQL: cantidad de tiempo transcurrido
S
n d ra able
dedicado a ejecutar el compilador de PL/SQL.
l e xa sfer
• Tiempo transcurrido en RPC de PL/SQL entrantes: tiempo dedicado a la ejecución de
u l y A n-tran
llamadas a procedimiento remoto (RPC) de PL/SQL entrantes. Se incluye todo el tiempo
dedicado a ejecutar SQL y Java de forma recurrente y, por lo tanto, no es fácil de relacionar con
J no el tiempo transcurrido en la ejecución de PL/SQL.
• Tiempo transcurrido en la ejecución de Java: cantidad de tiempo transcurrido dedicado a
ejecutar Java VM. Aquí no se incluye el tiempo dedicado a ejecutar o analizar sentencias SQL
de forma recurrente, ni el tiempo dedicado a ejecutar PL/SQL de forma recurrente.
• Tiempo transcurrido en enlaces repetidos: tiempo transcurrido dedicado a repetir enlaces.
• Tiempo de CPU en segundo plano: cantidad de tiempo de CPU (en microsegundos) que
consumen los procesos en segundo plano de la base de datos.
• Tiempo transcurrido en segundo plano: tiempo total dedicado en la base de datos a las
sesiones en segundo plano (tiempo de CPU y tiempo de espera activo).
• Tiempo de CPU RMAN (copia de seguridad/restauración): tiempo de CPU dedicado a
operaciones de copia de seguridad y restauración de RMAN.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e
Ejemplo lde
a sde
xModelo f erTiempo
Elly
A tran proviene de un informe de AWR. La información de modelo de tiempo también
u -
ejemplo mostrado
non en el informe de Statspack. Estas estadísticas están ordenadas por el valor del
Jestá disponible
porcentaje de tiempo de base de datos, de manera que el área que ocupa la mayoría del tiempo y sus
secundarias son las primeras que aparecen en la lista. En este ejemplo "sql execute elapsed time"
aparece en primer lugar. "Parse time elapsed" aparece a continuación, y "hard parse elapsed time" es
secundaria de "parse time elapsed". Puede ver rápidamente que los análisis pesados ocupan la
mayoría del tiempo de análisis, y el tiempo de análisis ocupa una parte significativa del tiempo de
base de datos.
Nota: la suma del porcentaje de tiempo de base de datos de las estadísticas individuales es superior
al 100%. Aunque "parse time elapsed" no se considera un secundario de "sql execute elapsed time",
hay algunos elementos que se tienen en cuenta en ambos.
Prueba
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
Cursores abiertos
)h
Uso de redo log
a
o m
a ilฺc Etc.ideฺ
@ gm t Gu
Instancia de Oracle
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Vistas dele xa sferDinámico
Rendimiento
Elly -
servidor de an Database mantiene un juego de datos dinámico en cuanto al funcionamiento y
A trOracle
u
non de la instancia. Estas vistas de rendimiento dinámico se basan en tablas virtuales que se
Jrendimiento
generan a partir de estructuras de memoria del servidor de base de datos. Es decir, no son tablas
convencionales que residen en una base de datos. Las vistas V$ externalizan los metadatos
contenidos en las estructuras de memoria de una instancia de Oracle. Algunas de las vistas V$
pueden mostrar datos antes de montar o abrir una base de datos. La vista V$FIXED_TABLE
enumera todas las vistas dinámicas.
Las vistas de rendimiento dinámico incluyen información raw utilizada por AWR y Statspack y, la
siguiente información detallada, entre otras:
• Sesiones
• Eventos de espera
• Bloqueos
• Estado de copia de seguridad
• Asignación y uso de la memoria
• Parámetros del sistema y de sesión
• Ejecución de SQL
• Estadísticas y métricas
Nota: las vistas DICT y DICT_COLUMNS también contienen los nombres de estas vistas de
rendimiento dinámico.
n d a b l
Vistas dele xa sferDinámico: Ejemplos de Uso
Rendimiento
l y A nManager
Enterprise
u - t ran utiliza vistas de rendimiento dinámico, y los DBA también pueden consultarlas
Jcuandonsea
o necesario. Los tres ejemplos mostrados en la diapositiva responden a las siguientes
preguntas:
a. ¿Cuáles son las sentencias SQL y su número asociado de ejecuciones en las que el tiempo de
CPU empleado es superior a 200.000 microsegundos?
b. ¿Qué sesiones se conectaron desde la computadora EDRSR9P1 el último día?
c. ¿Cuáles son los identificadores de sesión de las sesiones que actualmente retienen un bloqueo
que está bloqueando a otro usuario y cuánto tiempo se ha retenido ese bloqueo? (block puede
ser 1 o 0; 1 indica que esta sesión es la que realiza el bloqueo).
Las vistas de rendimiento dinámico se crean en estructuras de memoria que contienen las estadísticas
y permiten ver muchas de las estadísticas que se utilizan en el ajuste de rendimiento. La mayoría
contiene información sobre un componente específico de la instancia. En este curso, utilice la
información de las vistas de rendimiento dinámico que se utilizan de forma indirecta para ajustar
componentes específicos. Para obtener una lista completa de las diversas vistas de rendimiento
dinámico, consulte Oracle Database Reference (Referencia de Oracle Database).
La mayoría de las vistas de rendimiento dinámico no las utiliza directamente el DBA con frecuencia.
Las herramientas del repositorio de carga de trabajo automática (AWR) y Statspack resumen y
presentan las estadísticas con un formato más fácil de usar. En ocasiones, resulta útil para saber que
estas vistas existen y así investigar los detalles.
Niveles de Estadísticas
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
V$STATISTICS_LEVEL
STATISTICS_LEVEL
n d a b l
Niveles del e xa sfer
Estadísticas
l A traelnnivel de recopilación de estadísticas en la base de datos, defina el valor del
y determinar
Para
u -
nonSTATISTICS_LEVEL. Los valores de este parámetro son:
Jparámetro
• BASIC: no se recopila ningún asesoramiento ni ningún otro dato estadístico. Puede definir
manualmente otros parámetros de recopilación de estadísticas como, por ejemplo,
TIMED_STATISTICS y DB_CACHE_ADVICE. No se recopilan muchas de las estadísticas
necesarias para una línea base de rendimiento. Oracle recomienda no desactivar la recopilación
de estadísticas.
• TYPICAL: éste es el valor por defecto. Se recopilan datos para las estadísticas a nivel de
segmento, las estadísticas de tiempo y todos los asesores. Se sustituye el valor de otros
parámetros de recopilación de estadísticas.
• ALL: se realiza una recopilación de todos los datos a nivel de TYPICAL, las estadísticas de
tiempo del sistema operativo y las estadísticas de ejecución de orígenes de fila. Se sustituye el
valor de otros parámetros de recopilación de estadísticas.
Consulte V$STATISTICS_LEVEL para determinar qué otros parámetros se ven afectados por el
parámetro STATISTICAL_LEVEL.
SQL> select statistics_name, activation_level
2 from v$statistics_level
3 order by 2;
l y A tran
- OFF: estadísticas y no se utiliza memoria.
n- no se recopilan estadísticas, pero se asigna memoria. Al definir
Ju n- oDB_CACHE_ADVICE
READY:
en READY antes de definirlo en ON, se evitan errores de memoria a
la hora de recopilar estadísticas sobre el uso de la caché de buffers.
- ON: se recopilan estadísticas y se asigna memoria. Al cambiar el estado de
DB_CACHE_ADVICE de OFF a ON, se puede producir un error si no está disponible la
memoria necesaria.
• TIMED_OS_STATISTICS: especifica el intervalo (en segundos) en el que una instancia de
Oracle recopila estadísticas del sistema operativo cuando se realiza una solicitud desde el cliente
al servidor o cuando termina una solicitud.
Cuando ALTER SESSION modifica STATISTICS_LEVEL, se activan o se desactivan los
siguientes asesores o estadísticas únicamente en la sesión local. Su estado en el sistema no cambia.
• Estadísticas de tiempo
• Estadísticas de tiempo del sistema operativo
• Estadísticas de ejecución de plan
sólo de síntomas de problemas y no de las causas reales. La lista completa de eventos de espera está
en la vista V$EVENT_NAME con valores de nivel de instancia acumulados expuestos mediante
V$SYSTEM_EVENT. Para obtener más información sobre los eventos de espera, consulte Oracle
Database Reference 11g Release 2, Appendix C Oracle Wait Events.
(Referencia de Oracle Database 11g, Versión 2, Eventos de Espera de Oracle, Apéndice C).Las
métricas de la base de datos proporcionan los datos raw que se utilizan para determinar lo que hay
que ajustar y si el ejercicio de ajuste ha cumplido el objetivo. Statspack y AWR realizan las
a
instantáneas de estos datos, realizan cálculos según estas instantáneas y proporciona informes de la
s
h a
información derivada. AWR va un paso más allá que Statspack y realiza recomendaciones a través de
)
m
monitor de diagnóstico de base de datos automático (ADDM). AWR incluye información adicional
o
ilฺc ideฺ
no encontrada en el informe de Statspack por defecto y puede presentar su informe en formato
a
HTML.
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
V$SYSSTAT Usuario
Depuración
Redo
SQL
Clases de
estadísticas del
s a
sistema
) h a
RAC o m
a
Puesta
ilenฺccolaideฺ
@ gm t Gu
i n g den
OS
a s a tu
( j S
V$STATNAME
g ó
Caché n
e t his V$SESSTAT
A ra us
h e z e to
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
Clases del e xa sferdel Sistema
Estadísticas
Enly
A tran se describen las clases de estadísticas que se almacenan en las vistas
u -
esta diapositiva,
non y V$SYSSTAT. Es necesario crear clases para esas estadísticas, porque hay un gran
JV$SESSTAT
número de ellas. Cada estadística puede pertenecer a una o más clases. La columna CLASS de cada
estadística contiene un número que representa una o más clases de estadísticas. Los siguientes
números de clases son adicionales:
• 1, User
• 2, Redo
• 4, Enqueue
• 8, Cache
• 16, OS
• 32, Real Application Clusters
• 64, SQL
• 128, Debug
Por ejemplo, el valor de clase 72 representa una estadística que está relacionada con las sentencias
SQL y el almacenamiento en caché.
Nota: algunas estadísticas sólo se rellenan si el parámetro de inicialización TIMED_STATISTICS
está definido en true.
Visualización de Estadísticas
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
desde que se inició la instancia. En todos los niveles hay un identificador de estadísticas que se puede
unir a la tabla V$STATNAME.
Estadísticas a nivel de sistema
SQL> SELECT name, class, value FROM v$sysstat;
NAME CLASS VALUE
------------------ ------ ----------
logons cumulative 1 6393
logons current 1 10
opened cursors cumulative 1 101298
table scans (short tables) 64 6943
table scans (long tables) 64 344
redo entries 2 1126226
redo size 2 816992940
Los resultados mostrados son sólo una muestra parcial de la salida.
Todas las vistas de estadísticas mostradas incluyen las columnas NAME, CLASS y VALUE. La vista
de nivel de servicio incluye SERVICE_NAME y la vista de nivel de sesión incluye la columna SID
(identificador de sesión). Le permiten la unión a las vistas V$SERVICE_NAME y V$SESSION.
Ejemplo
Siempre hay dos servicios definidos: SYS$BACKGROUND y SYS$USERS. Se pueden crear hasta
116 servicios adicionales basados en el parámetro SERVICE_NAMES o se pueden definir con el
paquete DBMS_SERVICE. Los datos de servicio se acumulan desde el inicio de la instancia.
El servidor de Oracle Database muestra todas las estadísticas de servicios calculadas en la vista
V$SERVICE_STAT. Puede consultar esta vista para buscar los totales acumulativos de servicios
desde que se inició la instancia.
SQL> select service_name, stat_name, value s a
2 from v$service_stats;
) h a
o m
SERVICE_NAME STAT_NAME VALUE ilฺc e ฺ
a
m Gu i d
--------------- -------------------- ----------
@ g6977 t
SYS$USERS user calls
i n g e n
SERV1 user calls
j a s a
S t ud5320
SYS$BACKGROUND user calls ( his
orcl.oracle.com user callsón t 18948
a g e
orclXDB
Ar to us
user calls
z
0
SYS$USERS
c hDBe timese
DB time 84608280
SERV1
a n c e n 222965588
r a S e DB
SYS$BACKGROUND
l li time 0
x a nd erab DB time
orcl.oracle.com DB time 55877745
l e orclXDB
s f 0
u l t ran
y A n-Relacionadas
Estadísticas con la Sesión
JPuedenvisualizar
o información de la sesión actual para cada usuario conectado en la vista
V$SESSION. El servidor de Oracle Database muestra todas las estadísticas de sesiones calculadas
en la vista V$SESSTAT y las estadísticas para la sesión actual se muestran en V$MYSTAT.
Ejemplo
Determinar las sesiones que consumen más de 30.000 bytes de memoria PGA.
SQL> SELECT username, name, value
2 FROM v$statname n, v$session s, v$sesstat t
3 WHERE s.sid=t.sid
4 AND n.statistic#=t.statistic#
5 AND s.type='USER'
6 AND s.username is not null
7 AND n.name='session pga memory'
8 AND t.value > 30000;
Eventos de Espera
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Clases de Espera
V$SESSION_WAIT_CLASS V$SYSTEM_WAIT_CLASS
Recursos internos de base de datos
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Concurrency
Procesos de E/S
log file sync Commit System I/O en segundo plano
Procesos de E/S
Mensajes User I/O en primer plano
Network
de red
Sesiones Comandos
Idle Clases de Administrative DBA s a
inactivas espera
) h a
Código de m
o ser ฺ
Other ilฺc
Deberían
aplicación Application
ma Guide
escasos
de usuario
g
i n g@ dent
Recursos de Cluster
a s a
Configuration t u Configuración de instancia/
RAC j
( his S base de datos inadecuada
n
gó Gestor t
V$SERVICE_WAIT_CLASS
Scheduler
r a u s e de recursos V$EVENT_NAME
A o
c h ez se t
S
Copyright eny/o sus filiales. Todos los derechos reservados.
an© 2010,licOracle
n d ra able
xa sfer
Clases deeEspera
l
Los ynumerosos n
A tray diferentes tipos de eventos de espera posibles en Oracle Database 11g se clasifican
u l
Jen clases n -
no con una clase de espera.
relacionado
de espera en función de las soluciones relacionadas con ese evento. Cada evento sólo está
Esto permite realizar un análisis de alto nivel de los eventos de
espera. Por ejemplo, los bloqueos exclusivos de transacción (TX) suelen ser un problema a nivel de
aplicación y los bloqueos de gestión de espacio de segmento (HW) suelen ser un problema de
configuración. Las siguientes clases de espera son las más comunes:
• Application: esperas de bloqueo causadas por bloqueos a nivel de fila o comandos de bloqueo
explícitos.
• Administration: comandos de DBA que hacen esperar a otros usuarios (por ejemplo, una
reconstrucción de índices).
• Commit: esperas de una confirmación de escritura de redo log después de un comando commit.
• Concurrency: análisis y contención de bloqueo y bloqueo interno de caché de buffers
simultáneos.
• Configuration: espacio de buffers de log demasiado bajo, tamaños de archivos log, tamaño de
caché de buffers, tamaño de pool compartido, asignación de ranura de transacciones (ITL),
contención de cola de HW o contención de cola de asignación de espacio (ST).
• User I/O: esperas de bloques que se leen fuera del disco.
• Network Communications: esperas de datos que se envían por la red.
• Idle: eventos de espera relacionados con sesiones inactivas, como “SQL*Net message from
client”.
Nota: la clase Other contiene esperas que no se deberían producir normalmente en un sistema. Por
ejemplo, "wait for EMON to spawn".
V$SESSION_EVENT a g ó WAIT_CLASS#
e th X X
z Ar to usWAIT_CLASS X X
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Visualización
l e s f er
xade Estadísticas de Eventos de Espera
A r
y los neventosa n
Todos
o -t de espera se catalogan en la vista V$EVENT_NAME.
JuLasl estadísticas
n de eventos de espera acumulativas de todas las sesiones están almacenadas en
V$SYSTEM_EVENT, que muestra las esperas totales de un evento concreto desde el inicio de la
instancia. V$SERVICE_EVENT muestra las estadísticas de evento de espera acumulativas de cada
servicio. V$SESSION_EVENT muestra las estadísticas de evento de espera acumulativas de cada
sesión.
La mayoría de las estadísticas de evento de espera son las mismas para cada vista. Las diferencias se
han mostrado anteriormente. La vista V$SYSTEM_EVENT incluye un desglose de las estadísticas
para procesos en primer plano. V$SERVICE_EVENT incluye el servicio y V$SESSION incluye el
identificador de sesión.
Nota: V$SERVICE_EVENT no incluye las tres columnas de clase de espera, pero se obtienen
fácilmente mediante la unión a V$EVENT_NAME.
Cuando esté solucionando problemas, necesitará saber si un proceso ha esperado algún recurso.
SID EVENT
----- ---------------------------------------
1 pmon timer
2 rdbms ipc message
3 rdbms ipc message
9 rdbms ipc message
16 rdbms ipc message
17 rdbms ipc message
10 rdbms ipc message
5 smon timer
8 rows selected.
Posteriormente, puede seguir investigando para saber si esas esperas se producen con frecuencia
y si se pueden correlacionar con otros fenómenos, como el uso de módulos concretos.
Nota: los eventos de espera indicados anteriormente son eventos de clase de espera inactivos que
aparecen siempre. No indican ningún problema. Existen más de 60 eventos inactivos de ese tipo
que pertenecen a la clase de espera "Idle" (número de clase de espera 6).
n d a b l
Eventos ldee a sMás
xEspera f er Comunes
Laly -
diapositiva an una lista de eventos de espera y las áreas de componentes que podrían ser el
A trmuestra
u n esperas. Las definiciones internas de estos eventos de espera pueden cambiar de una
Jorigenndeoestas
versión a otra, y pueden hacer que otros eventos sean más comunes. Para obtener una descripción de
todos los eventos de espera para una versión de base de datos determinada, consulte Oracle Database
Reference (Referencia de Oracle Database) asociada a la versión de la base de datos.
Las estadísticas de los eventos de espera a nivel del sistema resultan más útiles si se pueden
correlacionar a un período de tiempo con la actividad conocida. La vista V$SYSTEM_EVENT
proporciona sólo los totales desde el inicio de la instancia. Un método práctico es capturar las
estadísticas en una tabla a una hora y, a continuación, volver a capturar las estadísticas más tarde.
Esto le permitirá comparar el cambio en los valores de las estadísticas en un período de tiempo
determinado. Esto elimina las estadísticas relacionadas con el inicio de la instancia y reduce el juego
de posibles problemas.
Statspack y AWR siguen este método con el uso de instantáneas para capturar estadísticas, eventos
de espera y métricas.
n d a b l
Precisiónlede s er
xalas Estadísticas
f del Sistema
A r a n
ly Database
JuOracle n -t captura determinados datos de rendimiento con una granularidad de milisegundos y
n o
microsegundos. Las vistas que incluyen tiempos en microsegundos y milisegundos se enumeran en la
diapositiva. La granularidad real del evento de tiempo depende del sistema operativo.
Nota: las columnas de tiempo existentes de otras vistas capturan tiempos en centésimas de segundo.
La información de tiempo que se recopila en las estadísticas del sistema es acumulativa desde que se
inició la instancia. Algunas vistas de estadísticas a nivel de sesión registran el tiempo de un solo
evento.
Prueba
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
n
optimizador
• Buscar Configuración
g ó e
• Comparar Configuración
a th • Estadísticas SQL
z Ar to us
• Políticas
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
a sfede
xFunciones r los Paquetes
Uso de las
l e
l
Los
A tyrlas
ynombres - anfunciones de los paquetes de gestión se enumeran en la parte izquierda de la
u
nonTodos ellos necesitan una licencia individual que se puede comprar sólo con Enterprise
Jdiapositiva.
Edition. Se puede acceder a las funciones de estos paquetes mediante Oracle Enterprise Manager
Database Control, Oracle Enterprise Manager Grid Control y las API proporcionadas con el software
de Oracle Database:
• El paquete Oracle Database Diagnostic Pack proporciona funciones de diagnóstico de
rendimiento automático y de control avanzado de sistema. Los siguientes componentes forman
parte de este paquete:
- Paquete DBMS_WORKLOAD_REPOSITORY
- Paquete DBMS_ADDM
- Paquete DBMS_ADVISOR, si especifica ADDM como el valor para el parámetro
ADVISOR_NAME o si especifica cualquier valor que empiece por el prefijo ADDM para el
valor del parámetro TASK_NAME
- Vista de rendimiento dinámico V$ACTIVE_SESSION_HISTORY
- Todas las vistas de diccionarios de datos que empiecen con el prefijo DBA_HIST_, junto
con sus tablas subyacentes
- Todas las vistas de diccionarios de datos con el prefijo DBA_ADVISOR_ si las consultas a
estas vistas devuelven filas con el valor ADDM en la columna ADVISOR_NAME o un valor
de ADDM* en la columna TASK_NAME o correspondiente TASK_ID
( j as is St
• El paquete Oracle Configuration Management Pack automatiza el proceso, a menudo lento y
g ó n th
e
proclive a errores, de configuración del software, seguimiento de inventario de software y
a
Ar to us
hardware, aplicación de parches, clonación y gestión de políticas.
z
n c he nse
• Oracle Provisioning Pack for Database automatiza el despliegue del software, aplicaciones y
a lice
parches para la base de datos y el sistema operativo subyacente.
S
d ra able
Si no puede adquirir los paquetes mencionados anteriormente, en especial Database Diagnostics y
n
l e xa sfer
Database Tuning, aún puede utilizar el método tradicional de ajuste y control de rendimiento a través
u l y A n-tran
de los informes de Statspack, los rastreos SQL y la mayoría de las estadísticas básicas, tal y como se
J no
muestra en la diapositiva anterior.
En Oracle Database 11g, puede utilizar el parámetro de inicialización CONTROL_MANAGEMENT_
PACK_ACCESS para desactivar los paquetes. La configuración de este parámetro es: NONE,
DIAGNOSTIC, DIAGNOSTIC+TUNING. Al definir el parámetro en NONE, se desactivan los
paquetes Diagnostic y Tuning, DIAGNOSTIC permite sólo el acceso al paquete Diagnostic y
DIAGNOSTIC+TUNING permite el acceso a ambos paquetes.
https://host name:1158/em
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Acceso ale
a er de la Base de Datos
laxPáginasInicial
f
y Aacceder t n
aaEM Database Control abriendo el explorador Web y escribiendo la siguiente
r
u l
Puede
Jdirección -
n https://nombre_host:número_puerto/em.
noURL:
nombre_host es el nombre o la dirección de su computadora. número_puerto es el número de puerto
HTTP de EM Database Control que se ha especificado durante la instalación. El puerto por defecto
es 1158. Podrá encontrar el valor correspondiente a su sistema UNIX en el archivo
$ORACLE_HOME/install/portlist.ini. En Windows, puede encontrar el archivo en el
directorio %ORACLE_HOME%\install.
La página inicial de la base de datos Enterprise Manager es el punto de partida para controlar y
administrar la base de datos. Utilice la página inicial de la base de datos para:
• Determinar el estado actual de la base de datos visualizando una serie de métricas.
• Iniciar o parar la base de datos.
• Acceder al rendimiento, la administración y el mantenimiento del entorno de la base de datos a
través de separadores cuyas páginas con separadores disponen de subsecciones.
Información de Rendimiento
en la Página Inicial de la Base de Datos
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Informaciónl e s f er
xade Rendimiento en la Página Inicial de la Base de Datos
A r a n
JuLalypágina ninicial
-t de la base de datos es el punto de partida. En esta página, se presenta información
o
nrelativa al estado y el rendimiento de la base de datos con enlaces y aumento de detalles que
general
dan acceso a información detallada. En la página inicial de la base de datos, las métricas se presentan
en las siguientes categorías:
• General: esta categoría ofrece una vista rápida del estado de la base de datos y proporciona
información básica sobre la base de datos. El estado puede ser Up, Down, Under Blackout,
Unmonitored o Unknown. Desde esta sección, puede acceder a otras páginas como, por ejemplo,
la página Properties, la página inicial del host, la página inicial del listener o la página inicial de
ASM, para obtener más información.
• Host CPU: en esta categoría, se muestra un gráfico de barras que indica el uso de CPU relativo
del host de Oracle Database. El 100% (en el gráfico) representa la CPU total que puede
proporcionar el sistema de host. En el gráfico de barras, aparecen dos valores. La barra de color
más oscuro de la parte inferior representa la cantidad de CPU que está consumiendo esta
instancia. El color más claro de la parte superior representa todos los demás procesos. Estos
colores se corresponden con la leyenda.
• SQL Response Time: en esta categoría, se muestra la respuesta actual del juego de SQL del que
se ha realizado un seguimiento frente a la respuesta de línea base. Si el tiempo de respuesta y de
línea base son iguales, eso significa que el sistema funciona normalmente. Es posible que el
tiempo de respuesta sea superior al tiempo de respuesta de línea base, lo que significa que una o
más sentencias SQL son más lentas de lo normal. Cuanto menor sea el tiempo de respuesta, con
más eficiencia se ejecutan las sentencias SQL.
• Diagnostic Summary: en esta categoría se muestra información sobre violaciones de políticas y
los últimos resultados del monitor de diagnóstico de base de datos automático (ADDM). El
s a
h a
enlace desde Performance Findings le conduce a la página de ADDM, en la que hay una tabla de
)
m
análisis del rendimiento con resultados a los que se debería prestar atención. ADDM utiliza
o
ilฺc ideฺ
instantáneas de la actividad de la base de datos para realizar un análisis de la actividad de la base
a
de datos en orden descendente.
@ gm t Gu
a i ng uden
• Space Summary: con esta categoría, puede identificar problemas relacionados con el
( j as is St
almacenamiento y ofrecer recomendaciones para mejorar el rendimiento.
El valor de Database Size (GB) se obtiene del campo Total Size (MB) situado en la parte
g ó n th
e
inferior de la página Tablespaces. Por ejemplo, si este valor es 99.000,0, el valor del campo
a
Ar to us
Database Size (GB) de la página inicial sería 99.
z
n c he nse
• High Availability: esta categoría muestra el estado de los elementos relacionados con la alta
a lice
disponibilidad. El primer elemento es un enlace a la Consola de Alta Disponibilidad. La hora y
S
n d ra able
el éxito de la última copia de seguridad se muestran como un enlace a la página View Backup
l e xa sfer
Report. Todos los estados de Instance Recovery Time, Usable Flash Recovery Area % y
u l y A n-tran
Flashback Database Logging se muestran como enlaces a la sección correspondiente de la
página Recovery Settings. Si se desactiva el reinicio de Oracle, el estado es un enlace a la página
J no para activar el reinicio; una vez activado el reinicio, el estado ya no será un enlace.
A continuación, se muestran categorías adicionales que aparecen en la página inicial de la base de
datos y que no aparecen en la diapositiva.
• Alerts y Related Alerts muestran todas la alertas abiertas. Para obtener más información sobre
una alerta, haga clic en el mensaje correspondiente.
• ADDM Findings: muestra las conclusiones más recientes registradas por una tarea de ADDM.
• Policy Violations: muestra un resumen de las reglas de política violadas en las áreas Security,
Configuration y Storage. Haga clic en los enlaces para obtener más información sobre las reglas
específicas o la puntuación de cumplimiento general.
• Job Activity: en esta categoría, se muestra un informe de las ejecuciones de trabajos de
Enterprise Manager, que indica las ejecuciones programadas, en ejecución, suspendidas y con
problemas. Si en un campo aparece un valor distinto de 0, puede hacer clic en dicho número
para ir a la página Job Activity, donde puede visualizar información sobre todos los trabajos
programados, en ejecución y pasados.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
xadel Log f r Alertas
ede
e
Visualización
l s
l
Cada
A de tdatos
y base - r antiene un archivo alert_<sid>.log. El archivo está en el servidor con la base
u
noynse almacena en el árbol de directorios especificado en el parámetro de inicialización
Jde datos
DIAGNOSTIC_DEST. El log de alertas se almacena con dos formatos en directorios diferentes. El
log de alertas con formato XML se encuentra en el directorio
$DIAGNOSTIC_DEST/rdbms/<db_name>/<instance_name>/alert y el directorio
$DIAGNOSTIC_DEST/rdbms/<db_name>/<instance_name>/trace contiene una
versión de texto. El archivo log de alertas de una base de datos es un log cronológico de mensajes y
errores, incluidos los siguientes:
• Cualquier parámetro de inicialización no por defecto utilizado en el inicio.
• Todos los errores internos (ORA-600), errores de corrupción de bloques (ORA-1578) y errores
de interbloqueo (ORA-60) que se produzcan.
• Operaciones administrativas, como las sentencias SQL CREATE, ALTER, DROP DATABASE y
TABLESPACE, y sentencias de Enterprise Manager o SQL*PlusSTARTUP, SHUTDOWN,
ARCHIVE LOG y RECOVER. Se registran todas las acciones de recuperación.
• Varios mensajes y errores relacionados con las funciones del servidor compartido y los procesos
del distribuidor.
• Errores durante la actualización automática de una vista materializada.
Enterprise Manager supervisa el archivo log de alertas y notifica los errores críticos. También puede
consultar el log para ver errores no críticos y mensajes informativos.
memory_target = 460M
db_block_size = 8192
compatible = "11.2.0.0.0"
db_create_file_dest = "+DATA"
db_recovery_file_dest = "+FRA"
db_recovery_file_dest_size= 3852M
undo_tablespace = "UNDOTBS1"
remote_login_passwordfile= "EXCLUSIVE"
db_domain = "us.oracle.com"
s a
dispatchers a
= "(PROTOCOL=TCP) (SERVICE=orclXDB)"
) h
audit_file_dest m
= "/u01/app/oracle/admin/orcl/adump"
o
audit_trail = "DB"
a ilฺc ideฺ
db_name
open_cursors
= "orcl"
= 300 @ gm t Gu
diagnostic_dest i ng uden
= "/u01/app/oracle"
a
Fri Mar 26 07:37:34 2010
( j as is St
n th
PMON started with pid=2, OS id=16765
g ó
a e
Ar to us
…
z
Fri Mar 26 07:41:34 2010
he nse
set n c
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not
a lice
…
S
ra able
n d
l e xa sfer
Fri Mar 26 08:04:34 2010
y A n-tran
Thread 1 advanced to log sequence 7 (thread open)
u l
J no
Thread 1 opened at log sequence 7
Current log# 1 seq# 7 mem# 0:
+DATA/orcl/onlinelog/group_1.261.714641891
Current log# 1 seq# 7 mem# 1:
+FRA/orcl/onlinelog/group_1.257.714641899
Successful open of redo thread 1
…
n d a b l
Archivosle dexaRastreo
s f eder Usuarios
n pueden generar archivos de rastreo de usuarios a petición del usuario o el
A tderaservidor
yprocesos
u l
Los
JDBA.non -
Rastreo a Nivel de Instancia
El rastreo a nivel de instancia sólo se debe activar cuando es absolutamente necesario. El rastreo de
todas las sesiones creará una carga de E/S y puede rellenar el sistema de archivos rápidamente. Este
registro de rastreo se activa o se desactiva con EXEC
DBMS_MONITOR.DATABASE_TRACE_ENABLE().
Rastreo a Nivel de Sesión
La siguiente sentencia activa la escritura en un archivo de rastreo para una sesión concreta:
EXECUTE DBMS_MONITOR.SESSION_TRACE_ENABLE (8,12, waits=>TRUE,
binds=>TRUE);
donde 8 y 12 son el identificador del sistema y el número de serie del usuario conectado.
Normalmente, sólo un DBA tiene los permisos necesarios para activar el rastreo en cualquier sesión.
Se crea el paquete DBMS_MONITOR al ejecutar el script catproc.sql. Este script está en el
siguiente directorio:
• En UNIX: $ORACLE_HOME/rdbms/admin
• En Windows: %ORACLE_HOME%\rdbms\admin
Para activar la escritura de un archivo de rastreo en la sesión actual, ejecute el siguiente comando:
EXECUTE DBMS_SESSION.SET_SQL_TRACE(TRUE)
Prueba
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Resumen
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
n d a b l
l e xa sfer
u l y A n-tran
J no
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates. FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Objetivos
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
Clientes externos
EM SQL*Plus …
SGA
Recopilación V$ DBA_*
de estadísticas Instantáneas s a
en memoria de AWR )h a
eficaz MMON m
o
a ilฺc ideฺ
@ gm t Gu
a i ng uden
Componente ( j a s de St Componente de
ADDM
ó
ajuste n t
automáticoh is … ajuste automático
Clientes internos
A rag use
h e z e to
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
Repositorio
l e a Carga
xde s f eder Trabajo Automática: Visión General
l
AWR
u - t ran
y Aes laninfraestructura que proporciona a los componentes de Oracle Database 11g los servicios
Jnecesarios
n o para recopilar, mantener y utilizar estadísticas para detectar problemas y aplicar ajustes
automáticos.
La infraestructura de AWR consta de dos partes principales:
• Un servicio de recopilación de estadísticas en memoria que utiliza varios de los componentes para
recopilar estadísticas. Estas estadísticas se almacenan en memoria por motivos de rendimiento.
Para acceder a las estadísticas almacenadas en memoria se utilizan las vistas de rendimiento
dinámico (V$).
• Las instantáneas de AWR representan la porción persistente de la utilidad. Para acceder a las
instantáneas de AWR se utilizan las vistas del diccionario de datos (DBA) y Database Control.
Las estadísticas se almacenan de forma persistente por varios motivos:
• Las estadísticas deben sobrevivir a posibles fallos de la instancia.
• Los datos históricos para las comparaciones de línea base son necesarias para determinados tipos
de análisis.
• Desbordamiento de la memoria: cuando las estadísticas antiguas se sustituyen por nuevas por falta
de memoria, los datos sustituidos se pueden guardar con objeto de utilizarlos más adelante.
La versión de la memoria de las estadísticas se transfiere al disco regularmente mediante un proceso en
segundo plano denominado MMON (monitor de gestión).
Con AWR, el servidor de Oracle Database ofrece un sistema para capturar datos estadísticos históricos
automáticamente, sin intervención por parte de los DBA.
Oracle Database 11g: Ajuste de Rendimiento 3-3
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
h e z e to
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
xa sfede
Datos delleRepositorio
r Carga de Trabajo Automática
A captura
•lyAWR
- t r anvarias estadísticas. AWR almacena estadísticas básicas, es decir, contadores y
u
non de valores (por ejemplo, cambios de archivo log y memoria de proceso asignada).
J estadísticas
AWR captura estadísticas de SQL como, por ejemplo, lecturas de disco por sentencia SQL.
También se capturan métricas como las lecturas físicas por minuto.
• Los datos del historial de sesiones activas (ASH) se capturan antes que la memoria en intervalos
de un segundo sólo para aquellas sesiones que estén activas actualmente (realizando una llamada
a la base de datos). A continuación, los datos de ASH se reducen según un factor de diez
mediante el almacenamiento en disco de un ejemplo aleatorio de los datos en memoria. El
Monitor de Diagnóstico de Base de Datos Automático (ADDM) utiliza mucho los datos de ASH
para identificar las causas raíz de los problemas de rendimiento.
• Los informes del asesor que produce ADDM, el asesor de segmentos y otros asesores también se
almacenan en AWR para su posterior visualización.
• Las estadísticas se realizan en dos niveles: estadísticas recientes en memoria en las vistas V$ y
estadísticas persistentes que se almacenan en el disco como instantáneas y vistas DBA_*.
Nota: los ejemplos de esta página no constituyen la totalidad de la lista.
ADDM encuentra
MMON problemas.
SYSAUX
SGA
06:00:00 a.m. Instantánea 1
Estadísticas 07:00:00 a.m. s a
en memoria
Instantánea 2
)h a
08:00:00 a.m. Instantánea 3
o m
09:00:00 a.m. Instantánea 4 a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
09:30:00 a.m.
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Repositorio
l e a Carga
xde s f eder Trabajo
•lyElArepositorio
- t r ande carga de trabajo es una recopilación de estadísticas persistentes de rendimiento
u n propiedad de SYS. El repositorio de carga de trabajo reside en el tablespace
J delnosistema
SYSAUX y es uno de los principales ocupantes de SYSAUX.
• Una instantánea es un juego de estadísticas de rendimiento capturadas en un momento concreto.
Las instantáneas se utilizan para calcular el ratio de cambio de una estadística. Cada instantánea
viene identificada por un número de secuencia de instantánea (snap_id) que es único en el
repositorio de carga de trabajo.
• Las instantáneas se generan por defecto cada 60 minutos. La frecuencia de generación se puede
ajustar cambiando el parámetro de instantánea INTERVAL. Dado que los asesores internos se
basan en estas instantáneas, debe tener en cuenta que el ajuste de este valor de intervalo puede
afectar a la precisión del diagnóstico. Por ejemplo, si INTERVAL se define en 4 horas, podrían
omitirse espigas que hayan podido producirse dentro de intervalos de 60 minutos.
• En los entornos Real Application Clusters, las instantáneas abarcan cada una el total de nodos de
un cluster. Las instantáneas comparten el mismo snap_id para los datos de cada nodo, que se
diferencian por su ID de instancia. Las instantáneas de Real Application Clusters se capturan al
mismo tiempo aproximadamente.
• Puede tomar instantáneas manualmente con Database Control. Es posible combinar la toma de
instantáneas manuales con las instantáneas automáticas que genera el sistema. Las instantáneas
manuales se utilizarán cuando desee capturar el comportamiento del sistema en dos momentos
concretos que no coincidan con la programación automática.
Editar parámetros
de instantánea
s a
)h a
m
a i l ฺco eฺ
Ejecutar
g m informe u id
de AWR t G
i n g@ d e n
a
( j Stu instantáneas
as isGestionar
g ó n th Gestionar líneas base
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Databasele xa ysAWR
Control f er
l y A Database
Mediante - t r anControl, puede configurar los parámetros RETENTION e INTERVAL para
u
Jcapturar n
noinstantáneas. Para acceder a la página Automatic Workload Repository, haga clic primero en
el separador Server de la página inicial de Database Control. A continuación, haga clic en el enlace
Automatic Workload Repository de la sección Statistics Management.
Mediante la página Automatic Workload Repository, podrá:
• Editar los valores del repositorio de carga de trabajo.
• Consultar información detallada acerca de las instantáneas creadas y crear manualmente
instantáneas nuevas.
• Crear líneas base, también denominadas juegos de instantáneas mantenidas.
• Generar un informe AWR.
Tablespace SYSAUX
Esquema sys
60 min
Instantánea
8 Instantánea
MMON s a
días Instantánea )h a
m
Instantánea Cada
a i l ฺconocheeฺ
Instantánea
g m Guid
i n g@ dent
a s a tu
( j S
g ó n
e t his
A ra us
h e z e to
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
Política de e a sferde Instantáneas de AWR
xDepuración
l n
A trlaacantidad
l
Para
u y controlar
n - de estadísticas de AWR históricas, defina un período de retención y un
Jintervalo
o
n de instantánea. En general, las instantáneas se eliminan automáticamente en orden
cronológico. Las instantáneas pertenecientes a las líneas base se retendrán hasta que se borren o
caduquen las líneas base. En un sistema típico con 10 sesiones activas, las recopilaciones de AWR
necesitan de 200 MB a 300 MB de espacio cuando los datos se guardan durante siete días. El
consumo de espacio depende fundamentalmente del número de sesiones activas en el sistema. En un
script de ajuste de tamaño utlsyxsz.sql se incluyen factores como el tamaño de los ocupantes
actuales del tablespace SYSAUX, el número de sesiones activas, la frecuencia de las instantáneas y el
tiempo de retención. El script awrinfo.sql genera un informe de los ratios estimados de
crecimiento de varios ocupantes del tablespace SYSAUX. Ambos archivos de comandos están
ubicados en el directorio $ORACLE_HOME/rdbms/admin.
AWR maneja la gestión de espacio de las instantáneas. Cada noche el proceso MMON depura las
instantáneas más antiguas que el período de retención. Si AWR detecta que falta espacio en
SYSAUX, reutiliza automáticamente el espacio ocupado por el juego de instantáneas más antiguo
mediante su supresión. A continuación, se envía una alerta al DBA para indicarle que SYSAUX
necesita más espacio.
DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS (
retention IN NUMBER DEFAULT NULL,
interval IN NUMBER DEFAULT NULL,
topnsql IN NUMBER DEFAULT NULL);
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Valores de e a sfer de AWR
xInstantáneas
l
u l
Mediante ran
y A eln-procedimiento
t MODIFY_SNAPSHOT_SETTINGS, puede controlar los parámetros de
Jinstantánea.
o
n Puede utilizar este procedimiento para cambiar lo siguiente:
• El período de retención. RETENTION se especifica en minutos. El valor por defecto es de ocho
días; el mínimo es un día. Al definir RETENTION en el valor 0 se desactiva la función de
depuración automática.
• El intervalo INTERVAL entre instantáneas. El valor mínimo es de 10 minutos, el máximo es de
100 años y el valor por defecto es de 60 minutos.
• El número de sentencias SQL principales para las que capturar datos de rendimiento. Puede
especificar los siguientes valores: DEFAULT, MAXIMUM, n, donde n es el número de sentencias
SQL principales que vaciar para cada criterio SQL como, por ejemplo, el tiempo transcurrido y
el tiempo de CPU. Especifique DEFAULT para capturar las 30 principales para el nivel
TYPICAL y las 100 principales para el nivel ALL de STATISTICS_LEVEL. Especifique
MAXIMUM para capturar el juego completo de SQL en la caché de cursores. Especifique NULL
para mantener el valor actual.
Nota: bajo circunstancias excepcionales, la recopilación automática de instantáneas se puede
desactivar completamente mediante la definición del intervalo de la instantánea en 0. La recopilación
automática de los datos estadísticos y de carga de trabajo se detiene y gran parte de la función de
gestión automática de Oracle no está operativa. Además, no podrá crear instantáneas manualmente.
Por este motivo, Oracle Corporation recomienda no desactivar la recopilación automática de
instantáneas.
Oracle Database 11g: Ajuste de Rendimiento 3-8
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT (};
Paquete DBMS_WORKLOAD_REPOSITORY
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Generaciónl e a Informes
xde s f er de AWR en EM
l
AWR y Apuede - t r an un informe de resumen sobre las estadísticas almacenadas en el repositorio de
producir
u n El informe contiene información general sobre el comportamiento global del
Jcarga ndeotrabajo.
sistema durante un período de tiempo definido por dos instantáneas.
Para generar un informe de AWR, acceda a la página Automatic Workload Repository de Database
Control en la página con separadores Server. En esta página, haga clic en el enlace correspondiente al
número de instantáneas. Así se abrirá la página Snapshots. En esta página, seleccione la instantánea
de inicio, a continuación elija View Report de la lista desplegable Actions y haga clic en Go. En la
página View Report, seleccione la instantánea de finalización y haga clic en OK.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Generación
l e a Informes
xde s f er de AWR en SQL*Plus
Ellinforme
u ran tiene la misma información, tanto si se ha generado desde SQL*Plus como
y A nde-tAWR
Jdesde nEM.
o El script de SQL*Plus awrrpt.sql se ejecuta en el directorio
ORACLE_HOME/rdbms/admin que genera el informe. El usuario que ejecute el script debe tener
el privilegio SELECT_CATALOG_ROLE. Este script pedirá las siguientes opciones del informe:
• Informe en HTML o en texto.
• El número de días de instantáneas entre las que elegir. Al indicar un número de días, aparecerán
las últimas instantáneas obtenidas. También puede determinar qué SNAP_ID debe utilizar
consultando la tabla DBA_HIST_SNAPSHOT para recuperar la asignación entre un ID
SNAP_ID y la hora real.
• SNAP_ID de inicio y SNAP_ID de finalización: un par de instantáneas que defina el período de
tiempo del informe.
• Nombre de archivo: el archivo especificado por el usuario en el que se escribirá el informe.
El informe contiene la misma información, independientemente de si se produce como informe en
HTML o como texto. Sin embargo, los informes HTML se pueden visualizar en un explorador web y
la ventaja de un informe HTML es la presencia de enlaces a las secciones de detalle del informe.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Lectura del e a sfdeerAWR
xInforme
l
A tsección an del informe de AWR se proporciona un juego de diagnósticos que describen
Enly
u la primera - r
non métricas:
Jlas siguientes
• Snapshot times
• Memory usage
• Load Profile
• Instance Efficiency percentages
• Shared Pool Statistics
• Top 5 Timed Foreground Events
• Estadísticas de sistema operativo, CPU y memoria utilizadas por la instancia
La sección Top 5 Timed Foreground Events es un punto de partida perfecto para diagnosticar
problemas de rendimiento. El objetivo de la primera sección es resaltar el problema más
significativo. Este ejemplo muestra que el porcentaje de tiempo de base de datos que se utiliza en las
esperas por ocupación del buffer es muy alto.
Las demás secciones del informe de AWR contienen información detallada que ayuda a diagnosticar
los problemas que se muestran en la primera sección.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Juegos de l e xa sfer y Comparaciones de Períodos
Instantáneas
l A trdeancomparación de períodos le permitirá definir dos períodos de tiempo distintos y
y operación
Esta
u
Jcomparar n- juegos de datos respectivos de AWR.
nosus
En la página Snapshots, seleccione la primera instantánea del primer período. Un asistente le guiará
en la selección de la instantánea de finalización del primer período y dos instantáneas del segundo
período. Como último paso del asistente, se muestra una página de revisión. Haga clic en Finish para
generar el informe Compare Periods.
También puede generar un informe Compare Periods sobre las líneas base que ya ha definido.
Después de crear al menos dos líneas base, podrá hacer clic en el número de líneas base de la página
Automatic Workload Repository Baselines. A partir de este punto, podrá realizar la operación de
comparación de períodos. Tan sólo siga el asistente para seleccionar ambas líneas base y haga clic en
Finish.
DBA
s a
)h a
o m
a ilฺc ideฺ
≠ @ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
DBA
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Comparele xa sVentajas
Periods: f er
y Autilizart r n Workload Repository Compare Periods para comparar dos períodos en
ainforme
l
Puede
u - el
on un informe de AWR muestra datos de AWR entre dos instantáneas (o dos puntos en
JAWR.nMientras
el tiempo), el informe Workload Repository Compare Periods muestra la diferencia entre dos
períodos (o dos informes de AWR, que equivale a cuatro instantáneas).
Utilice el informe Workload Repository Compare Periods para identificar los atributos de
rendimiento detallados y los valores de configuración diferentes entre los dos períodos de tiempo.
Por ejemplo, si se tiene la certeza de que la carga de trabajo de la aplicación es estable durante un
tiempo determinado del día, pero el rendimiento del martes fue deficiente entre las 10:00 AM y las
11:00 AM., al generar un informe Workload Repository Compare Periods para el martes entre las
10:00 AM y las 11:00 AM y el lunes entre las 10:00 AM y las 11:00 AM debe identificar los valores
de configuración, el perfil de carga de trabajo y las estadísticas diferentes entre estos dos períodos de
tiempo. Según los cambios notificados entre estos dos períodos de tiempo, se podrá diagnosticar de
forma precisa la causa de la degradación del rendimiento. Los dos períodos de tiempo seleccionados
para el informe Workload Repository Compare Periods pueden tener duraciones distintas porque el
informe normaliza las estadísticas según la cantidad de tiempo empleado en el servidor para cada
período de tiempo y presenta datos estadísticos ordenados según la principal diferencia entre los
períodos.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Comparele Periods: f er
xa sResultados
Enly
A transe muestra una parte de los resultados de la operación Compare Periods, que
u
Jidentifica n-
esta diapositiva
nodiferencias estadísticas entre dos períodos de instantáneas. Este informe compara la misma
carga de trabajo ejecutada en diferentes configuraciones de tablespace a lo largo de un período de
tiempo. La comparación se puede realizar por segundo o por transacción. Puesto que la carga de
trabajo es la misma en cada período de tiempo, la comparación por transacción sería adecuada. El
primer período muestra más recursos utilizados en prácticamente todas las áreas, que durante el
segundo período. Los gráficos de barras indican el número proporcional de esas métricas en
comparación con el otro período de tiempo. Por ejemplo, en este informe se muestra que hubo un
número significativamente superior de “DB time (seconds)” empleado por transacción en el primer
período. En la página con separadores General, también puede visualizar las estadísticas generales
por segundo en lugar de por transacción como se muestra en la diapositiva. Para ello, simplemente
seleccione el valor correspondiente en el campo View Data.
Al hacer clic en el enlace Report de esta página se muestra un informe en HTML que compara los
dos períodos, muestra las diferencias en áreas como, por ejemplo, eventos de espera, estadísticas del
sistema operativo, servicios, estadísticas de SQL, actividad de la instancia, estadísticas de E/S y
estadísticas de segmento.
Nota: si los tamaños de dos períodos de tiempo son diferentes, los datos se normalizan con DBTIME
antes de calcular la diferencia para que se puedan comparar los períodos de distinta duración.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Comparele xa sInforme
Periods: f er
Ally
A traelnseparador Report de la página Compare Periods: Results, se genera el informe
hacer clic-en
u
nonRepository Compare Periods. Este informe contiene las mismas secciones que un informe
JWorkload
de Statspack/AWR. Además, el informe Compare Periods muestra una comparación de
configuración para ambos períodos de tiempo.
En la diapositiva, se muestra la información de cabecera del informe. Este informe se realizó a lo
largo de dos períodos con la misma duración y se nos ha indicado que se ejecutó el mismo script de
carga de trabajo en cada período. En este ejemplo el valor de tiempo de base de datos se reduce
significativamente en el segundo período. Un cambio que produce un beneficio en el rendimiento no
siempre es tan claro.
Las principales secciones de diagnóstico se muestran en esta diapositiva y en las siguientes. Las
demás secciones del informe contienen información más detallada sobre las diferentes áreas de
rendimiento que podrá utilizar cuando una sección indique que se ha producido un problema en dicha
área.
Nota: también puede generar un informe con la misma información mediante el script
awrddrpt.sql ubicado en el directorio $ORACLE_HOME/rdbms/admin.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Comparele xa sPerfil
Periods: f er de Carga
y A dencarga
Ellperfil
u - t ranes muy útil en la comparación de dos períodos. Ayuda a aislar las diferencias en la
Jcarga ndeotrabajo que pueden contribuir a generar diferencias en el rendimiento. En este informe, el
script de carga de trabajo es idéntico en ambos períodos. Sólo ha cambiado la configuración de la
base de datos. Podemos observar que el tiempo de base de datos por segundo y por transacción se ha
reducido. También observamos que se han mezclado varias métricas relacionadas con E/S por
transacción: Logical reads, Block changes, Physical reads y Physical writes. Las transacciones por
segundo indican que se ha realizado más trabajo en la misma cantidad de tiempo.
Nota: este ejemplo se ha diseñado para mostrar un cambio que produce claramente un beneficio en el
rendimiento. A menudo, un cambio en un área muestra un beneficio mixto. La reducción de las
esperas en un área, puede provocar contención y esperas en otra área.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Comparele xa sEventos
Periods: f er Principales
A traincluso
y instancia, n aquellas ajustadas a la perfección, tendrán varios eventos de espera
l
Cada
u -
nonEstos eventos de espera son punteros a las áreas que más beneficiarán al ajuste. El
Jprincipales.
problema observado en el primer período era la gran cantidad de tiempo de base de datos dedicado a
las esperas por ocupación de buffer. Este evento de espera eclipsa todos los demás eventos de espera.
En el segundo período, podemos observar que las esperas por ocupación de buffer ya no son los
principales eventos de espera. Ya sabemos por las secciones anteriores del informe que el
rendimiento ha mejorado.
En el segundo período, aparecen esperas de buffer libre y la sincronización del archivo log ha
aumentado tanto en tiempo total como en porcentaje de tiempo de base de datos. Esta observación
debe conducir a la investigación de las causas y posibles soluciones de estas esperas. El siguiente
paso sería examinar las secciones de detalles de este informe relacionadas con estos eventos de
espera.
Prueba
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Resumen
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
Definición de Problemas
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Objetivos
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Monitor
Evaluación a
a s
Usuarios DBA ) h de la
Instancia
m
o ฺdatos
ilฺcbaseidde
g m Gu e
a
i n g@ dent
a s a tu
( j S
g ó n
e t his
A ra us Informes y archivos
h e z e to
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
Definiciónl e xaProblema
del s f er
l
Los A trpueden
yproblemas- an surgir en cualquier momento. Un DBA proactivo busca los problemas y los
u on de que los usuarios los detecten. En el pasado, el paso de detección y definición era
Jcorrigenantes
tedioso y, frecuentemente, dependía de los comentarios de los usuarios. Los comentarios de los usuarios
son importantes, pero suelen ser subjetivos y no reproducibles. En Oracle Database 11g, muchas de las
siguientes fuentes de información se pueden visualizar desde la interfaz Enterprise Manager:
• Supervise el estado actual de la instancia de la base de datos y compárela con un estado anterior.
- Utilice Statspack o AWR para recopilar métricas de rendimiento de forma regular. Los
cambios pueden apuntar a problemas antes de que sean perceptibles para los usuarios.
- Utilice las herramientas del sistema operativo o de EM para comprobar la puesta en cola de la
CPU y el disco, el uso del disco y el intercambio de memoria. Todos ellos son síntomas de que
el sistema está sobrecargado.
• Examine los archivos de instancias e informes de AWR o Statspack con atención.
- Utilice las herramientas disponibles (por ejemplo, informes de Statspack o AWR) para
identificar las sentencias SQL de las aplicaciones que consumen más recursos. ¿Han
cambiado?
- Compruebe si en los logs y archivos de rastreo hay mensajes de error que pudieran dar una
pista rápida de la naturaleza del problema. No se olvide de los logs específicos del sistema y
de la aplicación.
- Asegúrese de que los valores de los parámetros de inicialización tienen sentido en el sistema.
- Recopile estadísticas de la instancia y del sistema operativo. Los informes de Statspack
apuntan a componentes en los que se producen las mayores esperas y el mayor uso de recursos.
ADDM va más allá y se concentra en esos componentes con el mayor beneficio potencial.
Oracle Database 11g: Ajuste de Rendimiento 4-3
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Limitación
l e xdela Ámbito
s f er
¿Se
l y A originado
han
- t r anlos problemas de rendimiento en el sistema operativo, la instancia o la aplicación
u
JSQL?nEstaonpregunta no siempre es fácil de responder. Un rendimiento deficiente de SQL puede
provocar demasiadas lecturas y escrituras físicas, lo que puede parecer un problema de E/S. Los
componentes con un tamaño no adecuado (un problema de configuración de instancia) pueden causar
un intercambio excesivo en el sistema operativo. Una configuración de disco deficiente puede parecer
un problema de configuración de instancia, lo que provoca esperas de archivos redo de gran tamaño o
esperas de confirmación y otros problemas.
Elimine las posibilidades. Cuando parece que la instancia tiene problemas de E/S, compare las
estadísticas de E/S del archivo de instancia con las estadísticas a nivel de sistema operativo. Las
diferencias pueden guiarle al problema real. Por ejemplo: un tiempo medio de espera más alto de lo
normal en un tablespace determinado, se puede deber a:
• Hardware: un archivo se encuentra en una unidad lenta o tiene una configuración de RAID
inadecuada.
• Sistema operativo: el sistema operativo está ocupado con otros archivos en la misma unidad o
partición.
• Instancia: el tablespace se ha creado con propiedades diferentes al resto de tablespaces, otros
archivos de base de datos ocupados están en el mismo disco o partición (la E/S de base de datos
no está equilibrada en todas las unidades) o la mayoría de los objetos a los que se está accediendo
están en el mismo tablespace, archivo o disco.
• Aplicación: la aplicación está realizando excesivas E/S debido a que el optimizador ha elegido
una ruta de acceso deficiente a causa de estadísticas anticuadas, índices ineficaces u otros motivos.
Determine el ámbito del problema para centrar los esfuerzos en las soluciones que proporcionan el
mayor beneficio.
Definición de la Prioridad
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
xaTiempo f r
ePrincipales
5 Eventos l ede s
l
Los - an principales siempre tienen valores. En el ejemplo de la diapositiva, los
A detrespera
yeventos
u
nosenquejan de que el tiempo de respuesta es lento. Top 5 Timed Foreground Events sólo
Jusuarios
muestra que la instancia está utilizando la CPU.
La sección Instance CPU muestra que la instancia está utilizando el 65% de la CPU del sistema
operativo; esta información no es concluyente. Se supone que la instancia utiliza la CPU y no espera.
Este juego de diagnósticos puede significar que la instancia tiene limitaciones de CPU. Como se ha
señalado anteriormente, el ajuste de rendimiento puede reducir el tiempo de espera o tiempo de
servicio. En este caso, se debe reducir el tiempo de servicio. Para reducir el tiempo de servicio, SQL
es el área habitual que se debe examinar.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Definición
l ede s f er Ejemplo
xala Prioridad:
l
Los - an principales no proporcionan una dirección clara. Por lo tanto, continúe con el
A detrespera
yeventos
u
Jmodelonodentiempo para buscar las áreas que consumen el tiempo de base de datos. Para determinar
las tareas de ajuste de mayor prioridad, compare el tiempo dedicado a diversas tareas y esperas con el
tiempo general de espera y de servicio. Las dos herramientas más importantes registran las
estadísticas de modelo de tiempo para guiar los esfuerzos de ajuste. Por ejemplo, el informe de AWR
de la diapositiva indica que el tiempo de CPU de la base de datos (tiempo de llamadas de usuario) es
474,04 segundos. El tiempo dedicado a llamadas de usuario supone el 44,85% del tiempo total de la
base de datos. "sql execute elapsed time" indica 1050,06 segundos; este tiempo incluye los tiempos
de espera. Con tan sólo esta vista limitada, es evidente que los tiempos de espera para la ejecución de
SQL son importantes y le llevarían a examinar las estadísticas de espera relacionadas con la
ejecución de SQL y los informes de SQL para identificar sentencias SQL individuales para el ajuste.
Los valores de "% of DB time" indican que el ajuste de esta área podría tener un impacto relativo. Si
se pudiera reducir "hard parse elapsed time", la mejora máxima posible sería de 1050 segundos o el
99%. SQL tardará algún tiempo en la ejecución. Por lo tanto, la mejora real podría ser muy inferior,
en función de la cantidad de mejora que se pueda obtener en esa área.
SQL_ID: fu02q80b2kva1
Select time_id, quantity_sold, amount_sold from sales s,
customers c where c.cust_id=s.custid and cust_FIRST_NAME='Dina'
order by time_id
gm t Gu
• Los problemas de bloqueo no son problemas comunes, pero si se producen son muy importantes.
@
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
Despliegue
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Despliegue de:
• Nueva aplicación y base de datos
– Tomar la línea base.
– Controlar el crecimiento y el rendimiento.
• Nueva aplicación en base de datos existente
– Tomar la línea base antes del despliegue.
– Tomar la línea base después del despliegue. s a
)h a
– Comparar las líneas base. o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Despliegue l e xa sfer
l y Ainicialmente
Cuando - t r an se despliega una nueva aplicación, las expectativas sobre su rendimiento suelen
u
Jdiferirndeolanrealidad. Aquí hay dos variaciones que hay que tener en cuenta: la primera para una
aplicación nueva en una base de datos nueva y la segunda para una aplicación agregada a una base de
datos existente.
La aplicación nueva en una base de datos nueva no tiene línea base, por lo que el ajuste se basa en el
rendimiento actual. Genere informes de rendimiento con regularidad y guárdelos como líneas base. A
medida que aumenta el tamaño del juego de datos o el número de usuarios de la aplicación, compare
nuevos informes de rendimiento con los informes anteriores. Esto le permite realizar el ajuste antes
de que el rendimiento se degrade hasta un nivel inaceptable.
Si agrega una aplicación nueva a una base de datos existente, compare los informes de rendimiento
de línea base de antes y después de desplegar la aplicación. Estos informes indican los recursos que
está utilizando la aplicación nueva y la posible contención de recursos con las aplicaciones
existentes.
Producción
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Producción
l e xa sfer
A tranel ajuste en otras fases del ciclo de vida de la aplicación es proactivo. Hay que
•lyGeneralmente,
u -
nonposibles problemas antes de que los usuarios los detecten.
J buscar
• El ajuste de una base de datos de producción suele ser un ajuste reactivo. Algo va mal: un
informe que se ejecutaba en minutos ahora tarda horas, los usuarios se quejan de que el tiempo
de respuesta ha aumentado y las copias de seguridad no terminan en el tiempo asignado.
• Algo ha cambiado: ¿hay más usuarios? ¿Se está ejecutando un informe o una aplicación nueva?
¿Ha cambiado algo en el sistema de operativo?
• El ajuste de un sistema de producción que anteriormente funcionaba de manera aceptable y que
ahora tiene un problema depende de saber o deducir lo que ha cambiado. Compare el informe de
estadísticas de línea base obtenido cuando la base de datos funcionaba de manera aceptable con
un nuevo informe obtenido cuando el problema era visible. Las diferencias deberían ser
evidentes.
• El ajuste de una base de datos de producción cuando no hay estadísticas de línea base es más
difícil, pero posible. Hay que utilizar la misma metodología y ajustar los componentes
prioritarios. Hay que utilizar el modelo de tiempo para identificar el problema. Hay que tener en
cuenta las posibles soluciones, comenzando con el diseño para seguir en orden descendente. A
continuación, hay que utilizar una sesión de ajuste para probar las soluciones.
Informe de RDA
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Informe de e a sfer
xRDA
l
A tRemote an Diagnostics Agent (RDA) se ha diseñado para proporcionar un juego
Elly
u informe de- r
n información a los Servicios de Soporte de Oracle. RDA es una herramienta útil para el
Jcompleto
node
ajuste porque recopila la información en un informe de fácil acceso. Los Servicios de Soporte de
Oracle anima a los clientes a utilizar el grupo de Oracle Configuration Manager/RDA para obtener
solicitudes de servicio. Para obtener más información, consulte MOS Nota 250434.1, “Learn More
About Software Configuration Manager”
(Obtener más Información sobre el Gestor de Configuración de Software). Los script de RDA tienen
como finalidad recopilar información que ayude a diagnosticar el problema. Sin embargo, la salida
también es útil para ver la configuración general del sistema. Para obtener más información y
conocer la ubicación de descarga, consulte la nota de MOS: 414966.1 "RDA Documentation Index“
(Índice de Documentación de RDA). En la diapositiva, sólo se muestra una parte de la sección
Overview del informe de RDA. Este informe es muy largo y detallado. Se puede visualizar
fácilmente con los exploradores habituales.
Servicios
Log de alertas
tkprof
Archivos de rastreo
trcsess
Vistas de rendimiento
n d a b l
Herramienta
l e s er y Ajuste: Visión General
xade Supervisión
f
Enly
n
A tralecciones,
u
Jrecuadros
o n -
las siguientes utilizará muchas de las herramientas que se indican en la diapositiva. Los
n de color claro indican herramientas que contienen elementos de datos raw. Los recuadros
más oscuros son herramientas que han utilizado los datos raw para obtener más información útil. Con
frecuencia, la información se proporciona en informes como, por ejemplo, el informe del historial de
sesiones activas (ASH).
Las vistas de rendimiento dinámico, o vistas con formato V$, también se denominan vistas de
rendimiento y mantienen en memoria las estadísticas raw.
Los archivos de rastreo son difíciles de interpretar y principalmente están destinados para que los
utilicen los Servicios de Soporte de Oracle. Sólo a determinados rastreos se les puede aplicar formato
con la utilidad tkprof. La utilidad trcsess es una herramienta única para combinar y filtrar
archivos de rastreo para extraer las estadísticas de una sola sesión, servicio o módulo en varios
archivos de rastreo. El uso de las herramientas se tratará en una lección posterior.
El recuadro Services indica que la dirección del control de rendimiento está organizada en torno a
servicios. Las estadísticas se agregan por servicios y se pueden elaborar diversos informes por
servicios. Las estadísticas recopiladas por servicios, en lugar de por esquema, instancia o sesión,
pueden proporcionar una perspectiva única del rendimiento de la aplicación.
Servicios
Páginas de rendimiento
de EM Comparar períodos
Línea base de métrica
s a
Políticas de EM
)h a
ADDM o m
Asesores a ilฺc ideฺ
Control de SGA directo @ gm t Gu
Analizador de bloqueo a i ng uden
( j as is St
g ó n th
a e
Statspack r
z A to us Líneas base
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Herramienta
l e s er y Ajuste: Visión General (continuación)
xade Supervisión
f
A traque
yherramientas n se enumeran en esta dispositiva formatean los datos para que la información
u l
Las -
n Muchas de las herramientas analizan los datos para poder detectar los problemas de
Jsea másnoútil.
manera proactiva y ofrecer recomendaciones. En las siguientes lecciones, se explican y se utilizan la
mayoría de las herramientas.
Prueba
El rendimiento de la base de datos es bajo. Los usuarios se
quejan de tiempos de respuesta lentos desde el inicio del
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
n d a b l
Respuesta:l e xc,aa sfer
l
Los
A tapuntan
ysíntomas - r an a un problema de aplicación con el procesamiento de fin de mes. Parece que
u
non SQL de larga ejecución que consumen grandes cantidades de recursos de base de datos.
Jhay algunos
Las recomendaciones de ADDM deben apuntar al problema, posiblemente un rendimiento deficiente
de SQL.
La sección de estadísticas SQL de un informe de AWR o Statspack mostrará la sentencia SQL
principal que consume recursos de la base de datos.
Resumen
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates. FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Objetivos
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
Métricas y Alertas
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Métricas,le xa ysLíneas
Alertas f er Base
l A traelnrendimiento se necesita cierta información además de la que proporcionan las
y supervisar
Para
u -
non Para determinar si una estadística concreta es importante, deberá saber cuánto ha
Jestadísticas.
cambiado a lo largo de un período de tiempo concreto. Para ser proactivo, necesita recibir una
notificación cuando existan determinadas condiciones como, por ejemplo, cuando el tiempo de
respuesta del sistema se acerque al máximo acordado. Para diagnosticar problemas de rendimiento,
necesitará saber qué ha cambiado. Las métricas y las alertas proporcionan parte de esta información.
En general, una métrica es un ratio de cambio de tiempo en una estadística acumulativa. Por ejemplo,
las lecturas físicas por segundo. Pero existen otras métricas que se basan en eventos como
"tablespace lleno" o errores como "instantánea demasiado antigua".
Los valores de umbral se pueden definir para varias métricas y, cuando el valor de la métrica supera
el valor del umbral, se genera una alerta.
2M
Ratio alto
E/S
Lecturas físicas de 30 minutos
V$SYSSTAT
Tiempo
s a
2M Ratio bajo ) h
a
c o m
30 minutos il
a ฺ e ฺ
E/S gm t Gu i d
Las estadísticas
n @
g den
a i
( j as is Stu
continúan creciendo.
g ó n th
a e
z Ar to us Tiempo
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Limitaciónl e s f er
xdealas Estadísticas Básicas
A r a n
lyestadísticas
JuLas n -t son contadores de los eventos que tienen lugar en la base de datos. Las estadísticas y
o
n de espera son los datos raw. Las estadísticas básicas son siempre únicamente un valor en
los eventos
un momento determinado.
Si crea un gráfico de los valores de estadística básicos durante un largo período de tiempo, se dará
cuenta de que los valores continúan creciendo en el tiempo. En la diapositiva se ilustra un posible
ejemplo de un gráfico para la estadística physical reads extraída de la vista de rendimiento
V$SYSSTAT. Como se puede visualizar en la diapositiva, aunque el valor de estadística sea el
mismo para ambos gráficos, al final del período de observación, la tendencia es totalmente distinta.
En el gráfico superior, queda claro que la base de datos está experimentando un ratio mucho mayor
que el gráfico inferior. Por lo tanto, no tiene sentido mirar únicamente al valor de estadística.
Para entender mejor el comportamiento de la base de datos, necesita poder visualizar las curvas o
tendencias además de los valores. De este modo, necesita calcular los ratios de estadística durante un
período de tiempo para determinar la tendencia durante ese período.
V$SYSMETRIC V$FILEMETRIC
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
V$METRICNAME
V$SESSMETRIC V$EVENTMETRIC
V$SERVICEMETRIC V$WAITCLASSMETRIC
s a
)h a
Generación de redo/om
Métrica 1 Transacciónilฺc ฺ
MMON Métrica 2
a i d e
@ gm t Gu
Estadística básica 1 a i ng uden
( j as is St
g ó n th
Generación r a de redo
u e Confirmación
s de usuario Rollback de usuario
A o
c h ez se t
S
Copyright eny/o sus filiales. Todos los derechos reservados.
an© 2010,licOracle
n d ra able
xa 11g f r
eSolución:
A l e
Oracle Database
n s Métricas
r a
y nde-t Oracle Database recopila estadísticas básicas durante las operaciones normales. Las
lservidor
JuEl no básicas son recuentos simples. Por ejemplo, el recuento del número de lecturas físicas en
estadísticas
el sistema desde el inicio es una estadística básica.
Las métricas son estadísticas secundarias que se derivan de las estadísticas básicas. La mayoría de las
métricas realizan un seguimiento de los ratios de cambio en las actividades del servidor de Oracle.
Por ejemplo, las lecturas físicas medias en el sistema en los últimos 60 minutos sería una métrica.
Los componentes internos (clientes) utilizan las métricas para controlar el estado del sistema,
detectar problemas y aplicar ajustes automáticos. El proceso de monitor de gestión (MMON)
actualiza datos de métricas de forma periódica a partir de las estadísticas básicas correspondientes.
Los componentes del servidor de Oracle Database utilizan las métricas para realizar funciones de
gestión. Por ejemplo, el Monitor de Diagnóstico de Base de Datos Automático (ADDM) utiliza las
lecturas físicas medias del sistema de los últimos 60 minutos como entrada. Puede que otro
componente necesite una métrica distinta según la misma estadística básica, las lecturas físicas. Por
ejemplo, puede que el asesor de memoria necesite recuentos de lecturas físicas durante las horas de
más trabajo. Oracle Database 11g soporta métricas para estadísticas de eventos del sistema, de
sesión, de archivos y de espera. Cada métrica aparece identificada de forma única por un número de
métrica y va asociada a un nombre de métrica. El diagrama muestra algunas de las vistas fijas a las
que puede acceder para explorar los datos de métrica. Para obtener más información sobre estas
vistas, consulte la guía Oracle Database Reference (Referencia de Oracle Database).
DBA
s a
) h a
o m
Consultar a ilฺc ideฺ
Analizar diferencias. @una gm métrica.
t G u
a i ng uden
( j as is St
Sin métricas
g ó n t h Con métricas
ra us e
A
z e to
h e
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
Ventajaslde e a Métricas
xlas s f er
Laly
A tran que supone el registro de métricas es que, cuando un componente necesite
u -
ventaja principal
Jcalcularnoelnratio de cambio de alguna actividad, los datos que necesitará estarán disponibles
inmediatamente.
En las versiones anteriores era necesario capturar estadísticas antes y después de ejecutar la carga de
trabajo para calcular el ratio de cambio para una estadística básica concreta. Al contar con métricas,
bastará con que ejecute la carga de trabajo y seleccione las métricas correspondientes.
Los componentes del servidor ahora tienen una base para el ajuste automático y comprobaciones de
estado con las métricas recopiladas por el servidor. Las métricas proporcionan la información de
rendimiento necesaria para la gestión automática de memoria y el monitor de diagnóstico de base de
datos automático.
• En memoria:
– V$SYSMETRIC_HISTORY (última hora)
– V$FILEMETRIC_HISTORY
– V$WAITCLASSMETRIC_HISTORY (última hora)
– V$SERVICEMETRIC_HISTORY
– V$SESSION_WAIT_HISTORY (últimos 10 eventos)
• En disco: a
a s
– DBA_HIST_SYSMETRIC_SUMMARY
m )h
– DBA_HIST_SYSMETRIC_HISTORY
a i lฺco deฺ
– DBA_HIST_SESSMETRIC_HISTORY
g m Gui
– DBA_HIST_SYSTEM_EVENT (acumulativa)
i n g@ dent
– DBA_HIST_FILEMETRIC_HISTORY a s a (sólotualertas)
– DBA_HIST_FILESTATXSó(acumulativa) n ( his S
j
r a g se t
z A to u
– DBA_HIST_WAITCLASSMET_HISTORY (alerta)
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Visualización
l e er
xade lasInformación
f del Historial de Métricas
A
Losyvalores de r a n
Juunl intervalo
o n -t métrica se exponen en algunas vistas V$, donde los valores son los promedios durante
n de tiempo bastante pequeño. Los intervalos pueden variar según la clase de métrica, de
15 segundos a 10 minutos. Las instantáneas de los datos en las vistas V$ persisten en las tablas
DBA_HIST.
En la diapositiva se muestran algunas vistas de métrica y de AWR.
Por ejemplo:
La métrica V$SYSMETRIC_HISTORY muestra todos los valores de métricas del sistema
disponibles en la base de datos. Esta vista muestra métricas de duración larga (60 segundos con
historial de 1 hora) y de duración corta (15 segundos con un único intervalo).
DBA_HIST_SESSMETRIC_HISTORY muestra el historial de varias métricas de sesión
importantes. Contiene ejemplos (instantáneas) de la vista V$SYSMETRIC_HISTORY.
Nota: para acceder a las vistas DBA_HIST_* es necesaria una licencia de Diagnostics Pack.
Para obtener más información sobre estas vistas y los detalles de la columna, consulte la guía Oracle
Database Reference (Referencia de Oracle Database).
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Uso de EM l e er
a VersfDetalles
xpara de Métricas
A r a n
ly la página
JuUtilice n -t All Metrics para visualizar una lista con todas las métricas de rendimiento
o
n en la base de datos. Puede acceder a esta página desde la página inicial de la base de
disponibles
datos haciendo clic en el enlace All Metrics de la sección Related Links.
En la página All Metrics, podrá expandir todos los grupos de métricas o grupos específicos para
visualizar métricas concretas. Una vez seleccionada una métrica, se mostrará la página de la métrica
en cuestión. Podrá visualizar el valor de la métrica a lo largo de un período de tiempo concreto. Esta
vista se puede personalizar. El gráfico correspondiente muestra el historial de valores de la métrica.
Para acceder a la página que se muestra en la página inicial de la base de datos, haga clic en All
Metrics en la sección Related Links. En la página All Metrics amplíe Waits by Wait Class y, a
continuación, haga clic en Database Time Spent Waiting(%). En la página Database Time Spent
Waiting(%), haga clic en Concurrency.
Histogramas Estadísticos
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Ratio alto
E/S
Lecturas físicas de 30 minutos
V$SYSSTAT
Tiempo ¿Es un
problema s a
5500 real? )h a
o m
Número
V$FILE_HISTOGRAM
a ilฺc ideฺ
de
@ gm t Gu
esperas
a i ng uden
( j as is St
g ó n t h Período de
e
ra128 256us512 … 2 tiempo
1 2 4 8 16 32 64
A o
22
c h ez se t
S
Copyright eny/o sus filiales. Todos los derechos reservados.
an© 2010,licOracle
n d ra able
Histogramas
l e xaEstadísticos
s f er
l
Aunque
u - ran le pueden proporcionar una idea de la tendencia de estadísticas concretas, no
y A lasnmétricas
t
Jpuedenncomunicarle
o si un cuello de botella concreto está afectando a todo el sistema o si sólo está
localizado. Por ejemplo, puede observar un ratio de métrica alto, pero este aumento repentino puede
estar localizado en sólo una o dos sesiones del sistema. En este caso, puede que no merezca la pena
investigar el problema. Sin embargo, si el aumento repentino se generaliza a todo el sistema, es
necesario investigar más. Esta información está disponible a través de las vistas de rendimiento de
histograma.
Tal y como se muestra en la diapositiva, se observa un aumento repentino en el ratio de E/S. Puede
correlacionar esta información con el histograma de E/S correspondiente que está en
V$FILE_HISTOGRAM. Esta vista muestra un histograma de todas las lecturas de bloque
individuales, archivo por archivo. El histograma tiene cubos de intervalos de tiempo, medidos en
milisegundos, desde 1 ms hasta 222 ms (69,9 minutos). El valor de cada cubo lo compone el número
de veces que el sistema esperó esa cantidad de tiempo. Por ejemplo, en la diapositiva se puede ver
que el sistema esperó 5.500 veces durante más de 32 ms y menos de 64 ms para leer los bloques de
los discos. Si los tiempos de acceso son normalmente menores de 10 ms, es una causa de
preocupación para el sistema y debe investigarlo más. Si nota que los números son altos en períodos
de tiempo de espera más cortos, no debe preocuparse mucho.
Las métricas le avisarán de la existencia de un posible problema. Al acceder a ellas mediante
histogramas, puede determinar con claridad si realmente existe un problema.
Vistas de Histograma
sequential read”
• V$FILE_HISTOGRAM: para lecturas de bloque
individuales por archivo de datos
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Vistas dele xa sfer
Histograma
l y A n-tran
V$EVENT_HISTOGRAM
u muestra un histograma del número de esperas por evento.
JV$FILE_HISTOGRAM
n o muestra un histograma de todas las lecturas de bloque individuales por
archivo.
El histograma contiene cubos de intervalos de tiempo de < 1 ms, < 2 ms, < 4 ms, < 8 ms, ... < 2^21
ms, < 2^22 ms, >= 2^22 ms.
También puede visualizar las estadísticas de histograma desde Enterprise Manager. Desde la página
Performance, haga clic en uno de los elementos del área de leyenda para el gráfico Active Sessions
como, por ejemplo, User I/O para acceder a la página Active Sessions Waiting: User I/O. De nuevo,
haga clic en el nombre del evento de espera situado a la derecha del gráfico Active Sessions para
acceder a la página “Histogram for Wait Event” correspondiente. En la diapositiva se muestra el
gráfico “Histogram for Wait Event: ddb file sequential read”.
Nota: el histograma no se rellenará a menos que el parámetro de inicialización
TIMED_STATISTICS esté definido en TRUE, que es el valor por defecto. TIMED_STATISTICS
se define automáticamente cuando el parámetroSTATISTICS_LEVEL está definido en TYPICAL o
ALL.
Enterprise Manager
s a
Cola de ) h a
m
lฺco deฺ
alertas
Instancia
a i
de
g m Gui
Oracle La métrica supera
i n g@ dent
el umbral.
a s a tu
( j S
g ó n
e t his AWR
A ra us
h e z e to
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
e xa spor
Alertas Generadas
l f erel Servidor
l
Las
A sirven
yalertas - t r anpara notificar cuándo una base de datos está en un estado no deseado y necesita
u
Jatención. n defecto, Oracle Database envía alertas a través de Enterprise Manager, donde se
noPor
muestran. Opcionalmente, Enterprise Manager se puede configurar para enviar un correo electrónico
al administrador acerca de las condiciones del problema. El servidor de Oracle Database también
guarda un historial de la métrica y de las alertas en el repositorio de carga de trabajo.
La cola de alertas es una cola persistente de varios consumidores y está disponible para los usuarios
que desean escribir manejadores de alertas personalizados.
Los umbrales de varias métricas clave como, por ejemplo, Tablespace Used (%), están definidos por
defecto. También puede definir los umbrales en las métricas pertinentes para el sistema. Si la base de
datos se desvía de las lecturas normales lo bastante como para superar estos umbrales, Oracle
Database 11g se lo notificará de forma proactiva mediante el envío de una alerta. Una notificación
anticipada de posibles problemas permite responder rápidamente y, con frecuencia, resolver
problemas antes incluso de que los usuarios los adviertan.
Algunas métricas clave que pueden proporcionar una notificación anticipada del problema son:
• Average File Read Time (centiseconds)
• Response Time (per transaction)
• SQL Response Time (%)
• Wait Time (%)
Recibir notificación.
s a
Revisar los detalles y consejos de la alerta. )h a
o m
a ilฺc ideฺ
Corregir el problema.g@
gm t Gu
a i n uden
( j as is St
Verificar que el problema
g ó n th ha resuelto.
se
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Modelo del eUso er
xa de sAlertas
f
Ellmodelo
u ranbásico para las alertas generadas por el servidor es el siguiente:
y A nde-tuso
J • Sinesonecesario, cambie la configuración del umbral para las métricas de alertas del servidor.
Puede hacerlo mediante Enterprise Manager o un procedimiento PL/SQL.
• Configure reglas de notificación (por ejemplo, direcciones de correo electrónico o períodos de
interrupción) mediante Enterprise Manager.
• Cuando se genera una alerta, Enterprise Manager la muestra en las páginas de alerta. El agente
de Enterprise Manager envía una notificación a los administradores registrados.
• Cuando reciba una alerta, podrá seguir el consejo correspondiente para corregir el problema.
Nota: compruebe que el parámetro de inicialización STATISTICS_LEVEL esté definido en
TYPICAL o ALL.
Definición de Umbrales
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Definiciónl e xaUmbrales
de s f er
l
Para
A oteditar
y definir - r an un umbral, seleccione Metrics and Policy Settings en la región Related Links de
u
Jla página n de la base de datos. Para cambiar los umbrales, introduzca los valores deseados para
noinicial
Warning Threshold y Critical Threshold. Seleccione la vista All Metrics, para agregar los umbrales.
Aparecerán las alertas adecuadas cuando la base de datos alcance los valores especificados. Haga clic
en el botón Edit para especificar una acción de respuesta adicional en objetos individuales de una
alerta de grupo, o para agregar umbrales a dichos objetos, como un umbral de porcentaje de uso en
un tablespace específico.
La programación de recopilación especifica la frecuencia de las recopilaciones. La programación de
recopilación puede cambiar, pero no para umbrales individuales. Las programaciones de recopilación
se definen para grupos de métricas. Haga clic en la programación Collection para editar la
programación o ver las métricas recopiladas con dicha programación.
El botón Edit es un icono de un lápiz o grupo de lápices. Haga clic en el botón Edit de un único lápiz
y podrá cambiar los atributos de incidencias y umbrales de dicha métrica. El botón Edit de varios
lápices permite agregar umbrales a objetos individuales en dicho grupo de métricas como umbrales
diferentes en varios tablespaces.
1. Especifique un umbral.
2. Cree un caso de prueba.
3. Compruebe la existencia
de una alerta.
2
s a
) h a
1 m
o
a ilฺc ideฺ
3@gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
yx
Creaciónle
a
Pruebasde f r Alerta
euna
l
También
u ran definir umbrales para un objeto concreto.
y A sen-pueden
t
JEjemplo:
no el usuario decide que necesita recibir una alerta crítica si el espacio utilizado en el
tablespace INVENTORY supera el 75%. (Este tablespace no permite que los archivos de datos se
amplíen automáticamente.) Para crear y probar la alerta, realice los siguientes pasos:
1. En Enterprise Manager, navegue a la página Tablespace y defina el umbral deseado.
2. En SQL*Plus, utilice el comando CREATE TABLE … TABLESPACE … AS SELECT …
para duplicar una tabla existente en el tablespace que le interese. Continúe agregando filas a la
tabla para rellenar el tablespace.
3. Después de haber recibido un error informándole de que la tabla no se puede ampliar,
compruebe la página inicial de la instancia de base de datos para ver alertas relacionadas.
La mayoría de las alertas contienen el nombre de un asesor asociado al que se puede llamar para
obtener asesoramiento detallado. Enterprise Manager ofrece un enlace para llamar al asesor
correspondiente en cada mensaje de alerta.
Nota: la alerta Tablespace Full se evalúa en intervalos de 10 minutos.
DBA_HIST_SYSMETRIC_HISTORY
...
s a
)h a
DBA_OUTSTANDING_ALERTS o m
V$SYSMETRIC_HISTORY
DBA_ALERT_HISTORY a ilฺc ideฺ
V$SYSMETRIC
DBA_THRESHOLDS
@ gm t Gu
V$SERVICEMETRIC
a i ng uden
V$ALERT_TYPES
V$METRICNAME
... ( j as is S... t
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Vistas dele xa syfAlertas
Métricas er
l
Cuando
u - ranMMON calcula con cierta frecuencia los valores de las métricas, que se guardan
y Asenactivan,
t
Jen memoria
no durante una hora. Los valores en memoria correspondientes a las métricas de nivel de
sistema se pueden visualizar en las vistas V$SYSMETRIC y V$SYSMETRIC_HISTORY. También
existen vistas similares para las métricas de nivel de servicio.
Para activar la recopilación en el disco de todas estas métricas, basta con activar el mecanismo de
instantáneas automáticas de AWR. Los valores en el disco para las métricas se pueden visualizar en
las vistas DBA_HIST_*. La política de depuración para el historial de métricas es la misma que para
el resto de datos de instantáneas.
Las siguientes vistas del diccionario le permiten acceder a la información acerca de las alertas del
servidor:
• DBA_OUTSTANDING_ALERTS describe alertas que el servidor Oracle Database considera
pendientes.
• DBA_ALERT_HISTORY representa un historial de alertas que ya no están pendientes limitado
en el tiempo.
• DBA_THRESHOLDS le indica la configuración de umbral definida para la instancia.
• V$ALERT_TYPES le proporciona información acerca de cada tipo de alerta de servidor.
Nota: para obtener más información acerca de estas vistas, consulte la guía Oracle Database
Reference (Referencia de Oracle Database).
Prueba
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Resumen
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates. FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Objetivos
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e
Análisis lde a sfer Comparativo con Líneas Base de AWR
xRendimiento
u l
¿Cuál - ranadecuado que se debe definir en una métrica de rendimiento? ¿Qué es lo que
y Aes elnumbral
t
Jdesea ndetectar?
o Si desea conocer que el valor de la métrica de rendimiento indica que el servidor se
acerca a su capacidad, un valor absoluto es lo correcto. Pero si desea saber que el rendimiento es
diferente actualmente en comparación con el mismo momento de la semana o el mes anterior, el
rendimiento actual se debe comparar con una línea base.
Una línea base incluye juegos de métricas y estadísticas. A un único juego se le denomina
instantánea. Una línea base se compone de dos o más instantáneas. Normalmente, una línea base se
captura durante un período de funcionamiento normal o aceptable, pero se puede capturar cualquier
período de interés. Estas instantáneas se agrupan estadísticamente para generar un juego de valores
de línea base que varían con el tiempo. Por ejemplo, el número de transacciones por segundo de una
determinada base de datos varía según la hora del día. Los valores para las transacciones por segundo
son mayores durante el horario laboral y menores durante el horario no laboral. La línea base registra
esta variación y se puede definir para que le envíe una alerta si el número actual de transacciones por
segundo es significativamente diferente de los valores de la línea base. Cuando el rendimiento no es
el esperado, se puede capturar otro juego de métricas y compararlo con la línea base. Este método
permite que los datos apunten con claridad a los problemas de rendimiento.
Las líneas base de Oracle Database 11g proporcionan los datos necesarios para calcular los umbrales
que varían con el tiempo según los datos de la línea base. La línea base permite una comparación en
tiempo real de las métricas de rendimiento con los datos de la línea base y se puede utilizar para
generar informes de AWR que comparen dos períodos.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Líneas Base
l e xaen Valores
s f er de Página de Rendimiento
l
Los
A de cualquier
ydatos - t r an línea base definida en el pasado están disponibles en Oracle Database 11g.
u
nonde la línea base se pueden mostrar en la página Performance de Enterprise Manager.
JLos datos
Dispone de tres opciones de visualización:
• No mostrar información de líneas base.
• Mostrar la información de la línea base estática especificada.
• Mostrar la información de la línea base móvil del sistema.
Nota: la línea base de ventana móvil del sistema es válida después de que se hayan recopilado datos
suficientes y se produzca el cálculo de estadísticas. Por defecto, el cálculo de estadísticas está
programado para cada sábado a media noche.
Período relevante
en el pasado
s a
)h a
o m
a ilฺc ideฺ
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE @ gm t (Gu
start_snap_id IN NUMBER, a i ng uden
end_snap_id as is St
IN(jNUMBER,
g ó nIN VARCHAR2);
th
baseline_name a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Líneas Base
l e xade AWR
s f er
Una
l A basetresanun juego de instantáneas de AWR. Normalmente, es un juego de datos de
ylínea
u n-para períodos importantes que etiqueta y retiene en AWR. Una línea base se define en
Jinstantáneas
n o
una pareja de instantáneas; las instantáneas se identifican por sus números de secuencia de
instantánea (snap_ids) u horas de inicio y de finalización. Cada juego de instantáneas tiene
instantáneas de inicio y finalización e incluye todas las instantáneas situadas en medio. Los juegos de
instantáneas se utilizan para retener datos de instantáneas. Por lo tanto, las instantáneas
pertenecientes a los juegos de instantáneas se retendrán por defecto hasta que se borren dichos
juegos. Un valor de caducidad se puede definir en un número de días que retendrá la instantánea.
Un nombre proporcionado por el usuario identifica la línea base. Ejecute el procedimiento
CREATE_BASELINE para crear una línea base desde un juego de instantáneas y especifique un
nombre y una pareja de identificadores de instantánea. Se asignará un identificador de línea base
único para toda la vida de una base de datos a la línea base recién creada. Normalmente, las líneas
base se configuran a partir de ciertos períodos representativos del pasado con objeto de comparar el
comportamiento del sistema en ese momento con el comportamiento actual. También se pueden
definir alertas basadas en umbrales mediante líneas base desde Database Control. Puede definir la
hora de caducidad en un número de días con el parámetro de caducidad de este procedimiento. El
valor por defecto es NULL, lo que significa "nunca caduca".
Puede obtener los valores de snap_id directamente desde DBA_HIST_SNAPSHOT o Database
Control.
Nota: para obtener más información sobre el paqueteDBMS_WORKLOAD_REPOSITORY, consulte la
guía Oracle Database PL/SQL Packages and Types Reference (Guía de Referencia de Tipos y
Paquetes PL/SQL de Oracle Database).
Oracle Database 11g: Ajuste de Rendimiento 6-8
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Creaciónle
a
dexLíneassBase f er de AWR
y Acrearn-dos
t n de líneas base de AWR: única y de repetición. La página Create Baseline:
ratipos
u l
Puede
JBaseline
noInterval Type proporciona las siguientes explicaciones.
La línea base de tipo único tiene un intervalo de tiempo único y fijo: por ejemplo, desde el 1 de
febrero de 2010, a las 10:00 AM, al 1 de febrero de 2010 a las 12:00 PM. La línea base del tipo de
repetición tiene un intervalo de tiempo que se repite durante un período de tiempo: por ejemplo, cada
lunes de 10:00 AM a 12:00 PM durante el año 2010.
Para ver la página AWR Baseline, haga clic en el enlace AWR Baselines del separador Server de la
página Database Instance (Server > AWR Baselines). En la página Baseline, haga clic en Create y
siga las instrucciones del asistente para crear la línea base.
Nota: antes de configurar los umbrales de métricas de línea base de AWR para una línea base
particular, debe calcular las estadísticas de la línea base. Seleccione Schedule Statistics Computation
en el menú de acciones para calcular las estadísticas de la línea base. Hay otras acciones disponibles.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Línea Basel e er
xdea AWRsfÚnica
A tranla opción Single en el paso anterior, accederá a la página que se muestra en esta
y seleccionado
Silha
u -
non
Jdiapositiva.
Seleccione el período de tiempo que le interese de una de estas dos formas:
• Seleccione la opción Snapshot Range y, a continuación, defina la hora de inicio y la hora de
finalización del período siguiendo las indicaciones de la página. Si el icono que desea
seleccionar no se muestra, puede cambiar el período de tiempo del gráfico.
• Especifique el intervalo de tiempo, con una fecha y hora de inicio y finalización. Con la opción
Time Range, puede elegir momentos en el futuro.
Cuando termine, haga clic en Finish para crear la línea base estática.
Nota: si la fecha de finalización de la línea base está en el futuro, se creará una plantilla de línea base
con el mismo nombre.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Creaciónle
a sfede
dexPlantillas
r Línea Base de Repetición
l y Adefinir
Puede - t r an base de repetición mediante Enterprise Manager. En el asistente, después de
líneas
u
nonRepeating en el paso 1, puede especificar el intervalo de repetición como se muestra en la
Jseleccionar
diapositiva. Especifique la fecha de inicio y la duración de la línea base. A continuación, especifique
cuándo se recopilarán las estadísticas de línea base (diaria o semanalmente; si es semanalmente,
durante qué días). Especifique el rango de fechas para el que esta plantilla de línea base recopilará
estadísticas. La opción Retention Time define un valor de caducidad para la línea base, un valor
NULL indica que la línea base nunca caduca.
Paquete DBMS_WORKLOAD_REPOSITORY
s a
RENAME_BASELINE Cambiar el nombre de las líneas base
)h a
CREATE_BASELINE_TEMPLATE Crear plantillas de línea baseco
m
a ilฺ ideฺ
DROP_BASELINE_TEMPLATE Borrar plantillas deg m baseGu
línea
i n g dent
@
MODIFY_BASELINE_WINDOW_SIZE Modificar
a s ael tamaño tu demóvil
ventana de la
(
líneaj s
base ide S
ventana por defecto
ó n t h
A rag use
h e z e to
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
Gestión de
l e a sBase
xLíneas f er con PL/SQL
Ellpaquete
u - ran
y A nDBMS_WORKLOAD_REPOSITORY
t PL/SQL contiene procedimientos que le permitirán
Jgestionar
o
n el repositorio de carga de trabajo. Por ejemplo, dispone de procedimientos para gestionar
instantáneas y líneas base en este paquete. Los procedimientos que se muestran son sólo algunos de
los procedimientos proporcionados. Las mayoría de los procedimientos los utiliza Enterprise
Manager para gestionar el repositorio de carga de trabajo automática y, en raras ocasiones, necesitará
utilizar el procedimiento directamente.
Nota: para obtener más información sobre estos y otros procedimientos para gestionar el AWR que
contiene el paquete DBMS_WORKLOAD_REPOSITORY, consulte la guía Oracle Database PL/SQL
Packages and Types Reference (Referencia de Tipos y Paquetes PL/SQL de Oracle Database).
de interés
….. T4 T5 T6 ….. Tx Ty Tz
s a
BEGIN
)h a
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE ( o m
start_time => to_date('21-JUN-2010','DD-MON-YYYY'), a ilฺc ideฺ
end_time => to_date('21-SEP-2010','DD-MON-YYYY'),
@ gm t Gu
baseline_name => 'FALL10',
a i ng uden
template_name => 'FALL10', ( j as is St
expiration => NULL ); g ó n th
a e
END;
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Generaciónl e f er de Línea Base para un Período de Tiempo Único
a unasPlantilla
xde
l
Ahoray Apuede - t r anuna plantilla de cómo se deben crear las líneas base para diferentes períodos de
crear
u onfuturo, para programaciones predecibles. Si cualquier parte del período se encuentra en el
Jtiempondel
futuro, utilice el procedimiento CREATE_BASELINE_TEMPLATE.
En la plantilla de línea base, cuando el tiempo de finalización pasa al pasado, una tarea que utilice
estas entradas creará automáticamente una línea base para el período de tiempo especificado cuando
llegue el momento. El ejemplo crea una plantilla de línea base que genera una línea base cuando
0:0:0 21-Sep-2008 esté en el pasado.
El uso de definiciones basadas en tiempo durante la creación de la línea base no necesita los
identificadores de instantánea de inicio y de instantánea de finalización. Para el procedimiento
CREATE_BASELINE_TEMPLATE puede especificar una duración de caducidad para la línea base
que se cree a partir de la plantilla. La duración de la caducidad, especificada en días, representa el
número de días que desea que se mantengan las líneas base.
Un valor de NULL significa que las líneas base no caducan nunca.
Para crear una línea base en un período del pasado, utilice el procedimiento CREATE_BASELINE.
BEGIN
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (
day_of_week => 'SATURDAY',
hour_in_day => 6,
duration => 20,
start_time => to_date('21-JUN-2009','DD-MON-YYYY'),
end_time => to_date('21-JUN-2010','DD-MON-YYYY'),
s a
baseline_name_prefix => 'SAT_MAINT_WIN' )h a
template_name => 'SAT_MAINT_WIN', o m
expiration => 90, a ilฺc ideฺ
dbid => NULL );
@ gm t Gu
END;
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Creaciónle
a sfede
dexPlantillas
r Línea Base de Repetición
l
Utilice - t an CREATE_BASELINE_TEMPLATE para generar plantillas de línea base
y Ael procedimiento
r
u
non
Jque automáticamente creen líneas base para un período de tiempo contiguo basándose en una
programación de tiempo de repetición.
También puede especificar si desea que la línea base se elimine automáticamente después del
intervalo de caducidad especificado (expiration).
El ejemplo de la diapositiva genera una plantilla que crea una línea base para un período que se
corresponde con cada SATURDAY_MAINTENANCE_WINDOW durante un año. La línea base se crea
durante un período de 20 horas (duration) que comienza a las 6:00 AM (hour_in_day) de cada
sábado (day_of_week). La línea base se denomina ‘SAT_MAINT_WIN’ con la información de
tiempo agregada para hacer que el nombre sea único. La plantilla se denomina ‘SAT_MAINT_WIN’,
y cada línea base se conservará durante 90 días (expiration). La plantilla se crea para la base de
datos local ( dbid => NULL ).
Utilice esta línea base para comparar los recursos que se utilizan cada sábado durante la ventana de
mantenimiento.
El paquete DBMS_WORKLOAD_REPOSITORY tiene varios procedimientos para gestionar líneas
base. Consulte Oracle Database PL/SQL Packages and Types Reference (Referencia de Paquetes y
Tipos PL/SQL de Oracle Database) para obtener más información.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Vistas dele xa Base
Línea s f er
l
Las yvistas - an de datos que soportan las líneas base de AWR han cambiado.
A deltdiccionario
r
u • non
J DBA_HIST_BASELINE muestra la información sobre las líneas base realizadas en el sistema.
Para cada línea base, esta vista muestra el rango de tiempo completo y si la línea base es la que
se utiliza por defecto. La información adicional incluye la fecha de creación, la hora del último
cálculo de estadísticas y el tipo de línea base.
• DBA_HIST_BASELINE_DETAILS muestra información que le permite determinar la validez
de una línea base determinada, como si se ha producido un cierre durante el período de la línea
base y el porcentaje del período de línea base que está cubierto por datos de instantánea.
• DBA_HIST_BASELINE_TEMPLATE contiene las plantillas de línea base. La vista proporciona
la información que necesita MMON para determinar cuándo se creará una línea base a partir de
una plantilla y cuándo se deberá eliminar esta línea base.
• DBA_HIST_BASELINE_METADATA muestra la información de los metadatos de las líneas
base, incluyendo nombre, tipo, hora de creación, plantilla y caducidad.
Para obtener más información, consulte Oracle Database Reference 11g (Referencia de Oracle
Database 11g).
n d a b l
Control de e a sfer y Líneas Base
xRendimiento
l an adecuadamente, los umbrales de alerta ofrecen un servicio valioso (una
l y Aestán
Cuando
u - t r
definidos
n una métrica de rendimiento que tiene un valor inesperado. Desafortunadamente, en
Jalerta)naloindicar
muchos casos el valor esperado varía con el tipo de carga de trabajo, carga del sistema, hora del día o
día de la semana. Las líneas base asociadas con determinados tipos de carga de trabajo o días de la
semana capturan los valores de métricas de ese período. Las líneas base se pueden utilizar entonces
para definir los valores de umbral cuando existan condiciones similares.
Las estadísticas para las líneas base se calculan de forma que exista una carga mínima en el sistema,
las estadísticas para las líneas base estáticas se calculan manualmente. Puede planificar el cálculo de
estadísticas en la página AWR Baselines. Las estadísticas de la ventana móvil del sistema se calculan
automáticamente según la programación BSLN_MAINTAIN_STATS_SCHED. Por defecto, esta
programación inicia el trabajo cada semana a mediodía del sábado.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Definiciónl e xaUmbrales
de s f er de Alerta mediante una Línea Base Estática
l
Una
A calculadas
yvez - t r anlas estadísticas de línea base de AWR para una línea base en particular, puede
u on de métricas específicos de la línea base.
Jdefinirnumbrales
Calcule las estadísticas de línea base directamente desde la página Baselines (como se ha explicado
anteriormente). A continuación, vaya a la página AWR Baseline Metric Thresholds y seleccione el
tipo de métrica que desea definir. Cuando termine, seleccione una métrica específica y haga clic en
Edit Thresholds.
En la página Edit AWR Baseline Metric Thresholds correspondiente, especifique sus umbrales en la
sección Thresholds Settings y, a continuación, haga clic en Apply Thresholds.
Puede especificar umbrales según las estadísticas calculadas para la línea base. Esto se muestra en la
diapositiva. Además de “Significance Level”, las otras posibilidades son “Percentage of Maximum”
y “Fixed Values”.
Nota: después de que se defina un umbral mediante los umbrales de métrica de línea base, los
valores de umbral anteriores se descartan para siempre y las estadísticas de la línea base asociada se
utilizan para determinar los valores de umbral hasta que se borren (con la interfaz PL/SQL o de
umbrales de métricas de línea base).
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Uso de EMl e a Configurar
xpara s f er Rápidamente Umbrales Adaptativos
y ADatabaset r n Enterprise Manager permite seleccionar umbrales adaptativos para métricas de
a11g,
l
Oracle
u -
non de la base de datos, con una completa integración con las líneas base de AWR como el
Jrendimiento
origen de las estadísticas de métrica. EM ofrece una opción de configuración rápida en un juego
inicial de un clic de umbrales basados en OLTP o en perfiles de carga de trabajo de almacén de
datos.
Realice la selección de los perfiles de carga de trabajo apropiados en la ventana emergente
correspondiente. Al realizar esta sencilla selección, el sistema automáticamente configura y
evoluciona los umbrales adaptativos basándose en la línea base SYSTEM_MOVING_WINDOW para el
grupo de métricas que mejor se correspondan con la carga de trabajo elegida.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Uso de EMl e xpara s f er Rápidamente Umbrales Adaptativos (continuación)
a Configurar
Enly
A tranThreshold Settings, configure las líneas base de carga de trabajo deseadas.
la página-OLTP
u n configuradas, puede editar los niveles de umbral mediante el botón Edit Threshold.
JCuandonoestén
Las columnas Warning Level y Critical Level indican el tipo de alerta generado. Significance Level
indica si el nivel de observación es igual o superior a un valor determinado. Los umbrales de nivel de
importancia que se soportan son los siguientes:
• High: importante a un nivel de 0,95 (5 de 100).
• Very High: importante a un nivel de 0,99 (1 de 100).
• Severe: importante a un nivel de 0,999 (1 de 1.000).
• Extreme: importante a un nivel de 0,9999 (1 de 10.000).
Consejo: al editar los niveles de umbral, defina los umbrales de nivel de importancia de forma
conservadora y experimental al principio y, a continuación, observe el número y la importancia de
las alertas. Los niveles de importancia más altos reducen el número de alertas.
Los valores de umbral se determinan al examinar las estadísticas de los valores de métricas
observados en el período de tiempo de la línea base. El sistema define los umbrales según los datos
anteriores del propio sistema y algunos metadatos proporcionados por el usuario. Esto es
significativamente más sencillo en el caso de varios destinos, porque ya no necesita conocer la
métrica específica del sistema. Las estadísticas que se deben supervisar son el valor máximo, así
como los niveles de importancia. Los niveles de importancia le permiten definir el umbral en un
valor que sea estadísticamente importante en el nivel definido (por ejemplo, 1 de 1.000).
El umbral se
adapta
automáticamente.
s a
)h a
m
o ฺ
a ilฺc ideValor
@ gm t Gu observado
Cálculo de a i ng uden
de línea base
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
a sde
xValores f r
eUmbrales
Cambio de
A l e n Adaptativos
r
lyvez definidos a
-t los umbrales adaptativos, puede cambiar los valores (si es necesario) como se
JuUna o n
n en la diapositiva.
muestra
En la página Edit AWR Baseline Metric Thresholds correspondiente a la métrica que desea
modificar, verá el historial gráfico del valor observado para la métrica, la materialización del valor de
línea base calculado y el umbral adaptativo correspondiente.
Prueba
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Desea crear una línea base que siempre cubra los últimos tres
meses porque hay un valor máximo en el procesamiento cada
viernes. Desea definir un umbral para que le avise si la carga
supera el 110% del máximo de los 90 días anteriores. ¿Qué
tarea de las que se muestran a continuación utilizará para
realizar estas acciones?
a. Crear una línea base estática en los últimos 90 días. a
b. Cambiar el tamaño de ventana de la línea base del ) h
as
sistema a 90 días. c o m
a ฺ
il ideฺ
gm t Guen la
c. Programar un trabajo para calcular las estadísticas
@
ventana móvil del sistema cada 90 idías.
a ng uden
(
d. Crear una línea base de repeticiónj as que S t una nueva
cree
línea base cada 90 días. g ó n
e t his
ra s
A to u
e z
h nse
n c e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
S
Copyright
ra able
n d
Respuesta: l e xba sfer
l
Una - an cubrirá sólo el período de 90 días especificado y no cambia. La línea base
A basetrestática
ylínea
u
Jestáticanononse mueve.
El cálculo de las estadísticas en la línea base del sistema lo programa el sistema cada sábado y no se
puede cambiar.
Una línea base de repetición crea un juego de líneas base estáticas en períodos fijos.
Sólo la línea base móvil del sistema se ajustará como progresos de tiempo. Al definir la ventana en
90 días, verá los valores máximos finales de los 3 últimos meses y se podrán definir umbrales según
la carga de los 3 meses anteriores.
Resumen
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Objetivos
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Tareas del e xa sfer Automáticas
Mantenimiento
Aincorporan
•lySe
- t r antres tareas de mantenimiento automáticas a Oracle Database 11g: recopilación de
u
non del optimizador, asesor de segmentos y ajustes SQL automáticos. Estas tareas se
J estadísticas
ejecutan en un juego de ventanas de trabajo predefinidas. Las tareas se asignan a grupos de
consumidores de recursos. El plan de recursos activo durante la ventana controla los recursos
que estas tareas pueden consumir, como CPU.
• Estas tareas automáticas ayudan al DBA a supervisar el uso del espacio, recopilar estadísticas
del optimizador y ajustar sentencias SQL de carga alta.
• El DBA debe supervisar estas tareas. Los resultados pueden aparecer en forma de
recomendaciones a las que se hace referencia desde el Monitor de Diagnóstico de Base de Datos
Automático (ADDM) o desde la página Advisor Central. La ejecución de estas tareas es
prioritaria. Si las tareas no disponen de tiempo o recursos suficientes para finalizar, se vuelven a
programar para la siguiente ventana. Si las tareas rellenan las ventanas disponibles, es posible
que se deba cambiar la asignación de recursos y duración.
Ventanas de Mantenimiento
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Ventanasle
dexaMantenimiento
s f er
A Oracle
•lyCon t r n
aDatabase 11g, la función de tareas de mantenimiento automáticas se basa en la
u n
J activación-
no del gestor de recursos durante las ventanas de mantenimiento. De este modo, el plan
de recursos asociado a la ventana se activa automáticamente cuando ésta se abra. El objetivo es
evitar que el trabajo de mantenimiento consuma cantidades excesivas de recursos del sistema.
Cada ventana de mantenimiento está asociada a un plan de recursos que especifica cómo se
asignarán los recursos en la duración de la ventana.
• En Oracle Database 11g, WEEKNIGHT_WINDOW y WEEKEND_WINDOW (definidos en Oracle
Database 10g) se sustituyen por ventanas de mantenimiento diarias. Las tareas automáticas se
asignan a ventanas específicas. Todas las ventanas diarias pertenecen a
MAINTENANCE_WINDOW_GROUP por defecto.
• Todavía puede definir otras ventanas de mantenimiento, así como cambiar las horas de inicio y
las duraciones de las ventanas de mantenimiento diarias. Asimismo, cualquier ventana de
mantenimiento que se considere innecesaria se puede desactivar o eliminar. Las operaciones se
pueden realizar mediante el uso de las interfaces de EM o programador.
NAME
--------------------------------
DEFAULT_MAINTENANCE_PLAN
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e xa sferpor Defecto
Plan de Mantenimiento
l
l y Asenabre
Cuando
u - t raunan ventana de mantenimiento, se define de forma automática
JDEFAULT_MAINTENANCE_PLAN
no en el gestor de recursos para controlar la cantidad de recursos de
CPU que utilizan las tareas de mantenimiento automáticas. Para poder otorgar distintas prioridades a
cada posible tarea durante una ventana de mantenimiento, se asignan varios grupos de consumidores
a DEFAULT_MAINTENANCE_PLAN. La jerarquía entre grupos y planes se muestra en la
diapositiva.
Las tareas urgentes se asignan a ORA$AUTOTASK_URGENT_GROUP. Todas las tareas urgentes
tienen prioridad sobre las tareas de prioridad alta.
Las tareas de prioridad media se asignan a ORA$AUTOTASK_MEDIUM_GROUP.
Para tareas de prioridad alta:
• La tarea automática de recopilación de estadísticas del optimizador se asigna al grupo de
consumidores ORA$AUTOTASK_STATS_GROUP.
• La tarea automática de asesor de segmentos se asigna al grupo de consumidores
ORA$AUTOTASK_SPACE_GROUP.
• La tarea de ajustes SQL automáticos se asigna al grupo de consumidores
ORA$AUTOTASK_SQL_GROUP.
Nota: si es necesario, puede cambiar de forma manual el porcentaje de recursos de CPU que se
asigna a los distintos grupos de consumidores de tareas de mantenimiento automáticas dentro de
ORA$AUTOTASK_HIGH_SUB_PLAN.
DBA_AUTOTASK_TASK
urgente
s a
Estadísticas alta MMON
) h a
o m
ilฺc idABPeฺ
media
a
Espacio
@ gm t Gu
a i ng uden
( j a s S t
SQL n h i s Trabajo1 … Trabajon
r a gó se t
z A to u
c e
h nse
n e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
S
Copyright
ra able
n d
a Tareas r Mantenimiento Automáticas
Prioridades
l e xde s f ede
Afunción
•lyLa
- t r adentareas de mantenimiento automáticas se implementa mediante el proceso de tareas
u
non en segundo plano (ABP). Las funciones ABP actúan como intermediario entre las
J automáticas
tareas automáticas y el programador. Su principal objetivo es la conversión de tareas
automáticas en trabajos AUTOTASK para que los ejecute el programador. De igual importancia
es el hecho de que ABP mantenga un historial de ejecución de todas las tareas. ABP almacena el
repositorio privado en el tablespace SYSAUX; puede ver el repositorio a través de
DBA_AUTOTASK_TASK.
• MMON inicia ABP al inicio de la ventana de mantenimiento. Sólo se necesita un ABP para todas
las instancias. El proceso MMON supervisa ABP y lo reinicia, si fuera necesario.
• ABP determina la lista de trabajos que se necesita crear para cada tarea de mantenimiento. Esta
lista está ordenada en función de la prioridad: urgente, alta y media. Dentro de cada grupo de
prioridades, los trabajos se disponen en el orden de ejecución preferido. ABP crea trabajos de la
siguiente forma: primero se crean todos los trabajos de prioridad urgente, a continuación los
trabajos de prioridad alta y, finalmente, todos los trabajos de prioridad media.
• ABP asigna trabajos a varias clases de trabajo del programador. Estas clases de trabajo asignan
el trabajo a un grupo de consumidores en función de la prioridad.
Nota: con Oracle Database 11g, no hay ningún trabajo que se asocie de forma permanente a una
tarea automática específica. Por lo tanto, no es posible utilizar los procedimientos
DBMS_SCHEDULER para controlar el comportamiento de tareas automáticas; utilice los
procedimientos DBMS_AUTO_TASK_ADMIN en su lugar.
Oracle Database 11g: Ajuste de Rendimiento 7-6
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Tareas de l e xa sfer de Ajuste Automáticas
Mantenimiento
Laly
A ttareas
función de- r an de mantenimiento automáticas determina cuándo y en qué orden se realizan las
u on DBA, puede controlar lo siguiente:
Jtareas.nComo
• Si la ventana de mantenimiento pasa a ser inadecuada para la carga de trabajo de mantenimiento,
ajuste la duración y la hora de inicio de la ventana de mantenimiento.
• Controle el plan de recursos que asigna recursos a las tareas de mantenimiento automáticas
durante cada ventana.
• Active o desactive tareas individuales en algunas o en todas las ventanas de mantenimiento.
• En un entorno RAC, cambie el trabajo de mantenimiento a una o más instancias mediante la
asignación de trabajo de mantenimiento a un servicio. La activación del servicio en un subjuego
de instancias cambia el trabajo de mantenimiento a estas instancias.
Tal y como se muestra en la diapositiva, Enterprise Manager es la forma favorita de controlar las
tareas de mantenimiento automáticas. Sin embargo, también puede utilizar el paquete
DBMS_AUTO_TASK_ADMIN.
60 minutos
MMON
Estadísticas
en memoria
Instantáneas
SGA
s a
)h a
ADDM o m
a ilฺc ideฺ
@ gm t Gu
a i ng udenAWR
( j as is St
g ó n th
Resultados de ADDM a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Control dele a sfer de ADDM
xRendimiento
l
A defecto, aelnservidor de Oracle Database captura automáticamente información estadística de
u•lyPor
- t r
J SGA noncada 60 minutos y la almacena en el repositorio de carga de trabajo automática (AWR) con
el formato de instantáneas. Estas instantáneas se almacenan en disco y son similares a las
instantáneas de Statspack. Sin embargo, contienen información más precisa que las instantáneas
de Statspack.
• Asimismo, ADDM está planificado para que lo ejecute el proceso MMON automáticamente en
todas las instancias de base de datos con objeto de detectar problemas de forma proactiva. Cada
vez que se toma una instantánea, se dispara ADDM para realizar un análisis del período
correspondiente a las dos últimas instantáneas. Este acercamiento supervisa de forma proactiva
la instancia y detecta cuellos de botella antes de que pasen a convertirse en un problema de
relevancia.
• El repositorio de carga de trabajo automática almacena los resultados de cada análisis de
ADDM. También se puede acceder a estos resultados desde Database Control.
Nota: si bien ADDM analiza el rendimiento de Oracle Database durante un período de tiempo
definido por las dos últimas instantáneas, es posible ejecutar manualmente un análisis de ADDM
entre dos instantáneas cualquiera.
Servidor de aplicaciones
Oracle Database
Nodo raíz
Síntomas
de capacidad de CPU. Esta vista de dos dimensiones para determinar dónde se consume el tiempo de
base de datos le proporciona a ADDM un buen juicio para profundizar en los problemas de
rendimiento más significativos.
ADDM explora este gráfico de tiempo de base de datos en el nodo raíz y todos los secundarios de
cualquier nodo en el que el tiempo de base de datos consumido sea significativo. Los nodos de
bifurcación de este gráfico identifican el impacto en el rendimiento de lo que normalmente es un
síntoma de algún cuello de botella de rendimiento. Los nodos terminales identifican las causas raíz
a
concretas que pueden explicar todos los síntomas significativos a lo largo de la ruta de acceso en la
s
h a
que se alcanzó el nodo terminal. Por ejemplo, en la diapositiva, el nodo de bifurcación I/O Capacity
)
m
mide el tiempo de base de datos que se emplea en todas las solicitudes de E/S, que resulta
o
ilฺc ideฺ
significativo debido a varios cuellos de botella. Cuando se emplea un tiempo de base de datos
a
gm t Gu
significativo en las solicitudes de E/S, se exploran todos los secundarios del nodo I/O Capacity. Se
@
a i ng uden
corresponden con los dos nodos terminales de la diapositiva. El nodo Undersized Buffer Cache
apunta hacia una causa raíz concreta: si el tamaño de la caché de buffers de bloque de datos es bajo,
( j as is St
se producirá un número excesivo de solicitudes de E/S. El nodo Insufficient I/O Bandwidth busca los
g ó n th
e
problemas de hardware que pueden ralentizar todas las solicitudes de E/S. Una vez que el nodo
a
Ar to us
terminal identifica la causa raíz, ADDM mide el impacto de la causa raíz en el tiempo de base de
z
n c he nse
datos. A continuación, explora las maneras en que se puede resolver o aliviar el problema
a lice
identificado. ADDM utiliza varias de las medidas de métricas y estadísticas que ha recopilado AWR
S
n d ra able
para plantear recomendaciones de ajuste. El sistema mantiene las medidas en varias granularidades,
l e xa sfer
por lo que un análisis de ADDM puede abarcar desde los síntomas (por ejemplo, las operaciones de
y A n-tran
confirmación que han consumido un tiempo de base de datos significativo) hasta la causa raíz (por
u l
ejemplo, la escritura de E/S en uno de los archivos log fue muy lenta, posiblemente debido a un
J no
problema de hardware). El nodo también permite que ADDM estime el tiempo máximo de base de
datos posible que pueden ahorrar las recomendaciones de ajuste sugeridas, que no tiene por qué ser
igual al tiempo de base de datos atribuido a la causa raíz.
Además de identificar cuellos de botella, ADDM también identifica los componentes clave que no
estén experimentando ningún cuello de botella de rendimiento. La idea consiste en evitar que ajuste
componentes que tengan un efecto mínimo en el rendimiento total de la base de datos.
Es interesante observar que ADDM no necesita recorrer todo el gráfico de tiempo de base de datos.
Puede eliminar los subgráficos que no sean de interés. Esto se puede conseguir sólo porque el gráfico
de tiempo de base de datos se ha construido de manera que el tiempo de base de datos de un nodo
está incluido en el tiempo de base de datos atribuido a sus principales. Al eliminar y no recorrer los
subgráficos que no sean de interés, que representan los componentes de la base de datos que no están
consumiendo un tiempo de base de datos significativo, el costo de un análisis de ADDM depende
únicamente del número real de problemas de rendimiento que estuvieran afectando a la base de
datos. El costo del análisis no depende de la carga real de la base de datos o del número de problemas
que ADDM puede diagnosticar.
Al final del análisis, ADDM informa de las causas raíz principales identificadas, clasificadas según el
impacto en el rendimiento que se ha atribuido a cada causa raíz junto con las respectivas
recomendaciones de ajuste.
Oracle Database 11g: Ajuste de Rendimiento 7-11
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Databasele xa ysBúsquedas
Control f er de ADDM
Ala página
•lyEn t r a n
inicial de la base de datos se puede visualizar la sección Diagnostic Summary, que
Ju indica n -
no el número de conclusiones de ADDM en la última ejecución automática.
• Al hacer clic en el enlace Performance Findings, se abrirá la página Automatic Database
Diagnostic Monitor (ADDM), donde podrá visualizar información detallada acerca del último
análisis de ADDM ejecutado.
2 a
a s
m )h
o
a ilฺc ideฺ
@ gm t Gu
3 a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Resultados
l e er de ADDM
xdea los sAnálisis
f
Laly
A tran Database Diagnostic Monitor (ADDM) le permite ver las conclusiones
u -
página Automatic
nondel último análisis de ADDM ejecutado. Database Time representa la suma del tiempo con
Jdetalladas
actividad empleado en las sesiones de la base de datos para el período de análisis. Se proporciona un
porcentaje de impacto concreto para cada conclusión. El impacto representa el tiempo consumido por
el problema correspondiente comparado con el tiempo de la base de datos durante el período de
análisis.
La siguiente información está relacionada con los números de la diapositiva:
1. El gráfico muestra el promedio de usuarios activos. Además, el problema más importante fue un
problema de espera.
2. El icono muestra que la salida de ADDM que aparece en la parte inferior de la página
corresponde a este momento. Puede visualizar el historial (para ver un análisis previo) haciendo
clic en los otros iconos.
3. Los resultados proporcionan un breve resumen de lo que descubrió ADDM en las áreas de
rendimiento de la instancia y lo que se pudo ajustar. Al hacer clic en un problema concreto,
pasará a la página Performance Finding Details.
Si hace clic en el botón View Report, podrá acceder a información detallada del análisis de
rendimiento en forma de informe de texto.
Recomendaciones de ADDM
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
xa sdefeADDMr
l e
Recomendaciones
A tran Finding Details ofrece recomendaciones para solucionar los problemas
Laly
u -
página Performance
non Las recomendaciones se agrupan en categorías, entre la que se incluyen las categorías
Jencontrados.
de esquema, de ajuste SQL y de configuración de la base de datos. La columna Benefit (%) muestra
la reducción máxima de tiempo transcurrido en la base de datos al implementar la recomendación.
ADDM considera la posibilidad de aplicar varios cambios al sistema y entre sus recomendaciones se
incluyen:
• Cambios de hardware: agregar CPU o cambiar la configuración del subsistema de E/S.
• Configuración de la base de datos: cambiar valores de parámetros de inicialización.
• Cambios de esquema: hacer particiones hash de tablas o índices, o utilizar la gestión
automática de espacio de segmento (ASSM).
• Cambios de aplicación: utilizar la opción de caché para secuencias o usar variables ligadas.
• Utilizar otros asesores: ejecutar el Asesor de Ajustes SQL en SQL de carga alta o ejecutar el
Asesor de Segmentos en objetos activos.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Databasele xa ysTarea
Control f er ADDM
A defecto,
•lyPor t r n tareas ADDM se ejecutan para todas las instantáneas de Oracle Database
alas
u -
non en el repositorio de carga de trabajo. No obstante, puede crear una tarea ADDM
J almacenadas
personalizada para analizar un período de tiempo identificado por una instantánea de inicio y
una instantánea de finalización.
• Para crear una tarea ADDM, acceda a la página inicial de la base de datos. En la sección Related
Links, haga clic en el enlace Advisor Central. En la página Advisor Central, haga clic en el
enlace ADDM.
• Seleccione la opción Period Start Time y haga clic en la instantánea que desea utilizar como
punto de inicio del período de tiempo. A continuación, seleccione la opción End Time y haga
clic en la instantánea que desea utilizar como punto final del período de tiempo.
• Haga clic en el botón OK. Aparecerá la página Automatic Database Diagnostic Monitor
(ADDM), donde recibirá confirmación de que se ha creado una nueva tarea.
• En la sección Performance Analysis de esta página, obtendrá el resultado de la tarea creada
manualmente.
Nota: los resultados de una tarea ADDM creada manualmente también pueden verse desde la página
Advisor Central. La sección Search de esta página permite localizar tareas.
FROM dba_advisor_tasks
WHERE task_id = (
SELECT max(t.task_id)
FROM dba_advisor_tasks t,
dba_advisor_log l
WHERE t.task_id = l.task_id AND
t.advisor_name = 'ADDM' AND
l.status = 'COMPLETED');
SQL> @?/rdbms/admin/addmrpt s a
Instance DB Name Snap Id Snap Started Level ) h a
----------- ------------ --------- ------------------ ----- o m
orcl ORCL 434 06 Feb 2010 00:00 1 a ilฺc ideฺ
…
@ gm t Gu
Enter value for begin_snap: 434
a i ng uden
Enter value for end_snap: 436
… ( j as is St
Enter value for report_name: g ó n th
a e
Ar to us
Generating the ADDM report for this analysis ...
z
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e
Recuperación
l xade Informes
s f er ADDM Mediante SQL
y A nejemplo
Ellprimer
u - t ranilustra cómo mostrar el último informe ADDM con un comando SQL.
JPara diagnosticar
no problemas de rendimiento de la base de datos, se puede ejecutar el análisis de
ADDM entre dos instantáneas de AWR cualesquiera, siempre que cumplan los siguientes requisitos:
• Ninguna de las dos instantáneas deberá haber experimentado errores durante su creación y
ninguna de las dos se deberá haber depurado todavía.
• No se deben haber producido acciones de cierre e inicio entre las dos instantáneas.
El segundo ejemplo utiliza el script addmrpt.sql. Se puede utilizar este script SQL*Plus para
ejecutar ADDM en cualquiera de las dos instantáneas de AWR especificadas. Las dos instantáneas
deberán haber sido tomadas por la misma instancia.
El script identifica el DBID y muestra los identificadores de las instantáneas en los últimos tres días.
Esto le ayudará a determinar en qué par de instantáneas realizar el análisis.
Prueba
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
n d a b l
r
a sfeActivas:
xSesiones
e
Historial lde
n Visión General
Avista V$ACTIVE_SESSION_HISTORY
•lyLa r a proporciona un ejemplo de la actividad de sesión
n-t Se puede utilizar como primer análisis de sistema de fallos. Cualquier sesión que
Ju ennlaoinstancia.
esté conectada a la base de datos y que esté esperando un evento que no pertenece a la clase de
espera de inactividad se considera una sesión activa. Se incluye cualquier sesión que estuviera
en la CPU en el momento de la toma de ejemplo.
• Los ejemplos de la sesión activa se almacenan en un buffer circular en SGA. Conforme la
actividad del sistema aumenta, el número de segundos de la actividad de la sesión que se puede
almacenar en el buffer circular desciende. El tiempo de un ejemplo de sesión se retiene en la
vista V$. El número de segundos de actividad de sesión que se muestra en la vista V$ depende
totalmente de la actividad de la base de datos.
• Al crear las instantáneas del repositorio de carga de trabajo automática (AWR), el contenido de
V$ACTIVE_SESSION_HISTORY se vacía en el disco. Al capturar sólo sesiones activas, se
representa un juego de datos gestionable con un tamaño relacionado directamente con el trabajo
realizado en lugar de con el número de sesiones que se permiten en el sistema. Puede examinar
los datos del historial de sesiones activas (ASH) en la vista V$ACTIVE_SESSION_HISTORY
y los datos históricos en la vista DBA_HIST_ACTIVE_SESS_HISTORY. También puede
realizar análisis detallados de estos datos y, a menudo, se evita tener que reproducir la carga de
trabajo para recopilar información adicional de rastreo de rendimiento. Los datos presentes en
ASH se pueden acumular en varias dimensiones que captura.
bloqueos internos.
V$ACTIVE_SESSION_HISTORY
Esta-
dísticas 1 seg
Inserciones de
ASH rutas de acceso directas
1 seg
Buffer
Sin usar 1 seg de
SQL acumulación
Historial reciente
V$SESSION Cada
s a
60 minutos
)h a
MMON
1 de
o m
SGA
10
a ilฺc ideฺ
MMNL @
Repositorio
gdem t Gu
i n gde trabajo
d e n
Cuando está lleno al 66% a
carga
as is Stu
n ( j
a g ó th
WRH$_ACTIVE_SESSION_HISTORY
e (particionado)
z Ar to us DBA_HIST_ACTIVE_SESS_HISTORY
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
r
a sfeActivas:
xSesiones
e
Historial lde
A trmuy n costoso registrarMecanismos
•lyResultaría
- a todas las actividades de todas las sesiones. ASH extrae
Ju únicamente
no n ejemplos de información de V$SESSION. Se extrae un ejemplo cada segundo. Se
realiza de manera eficaz sin utilizar SQL.
• ASH se ha diseñado como un buffer de acumulación en memoria y la información anterior se
sobrescribirá cuando sea necesario. El volumen de datos del buffer de ASH puede ser muy
grande, por lo que no es posible vaciarlo en el disco. Un enfoque más eficaz es el de filtrar los
datos de historial mientras se vacían en el repositorio de carga de trabajo. Este proceso lo realiza
automáticamente el proceso MMON (monitor de gestión) cada 60 minutos y el proceso MMNL
(Manageability Monitor Light) cuando el buffer está lleno.
• En la diapositiva se muestran todas las funciones de implementación no agresivas que se utilizan
para capturar datos ASH. Para reducir aún más una posible contención, los procesos que sólo
leen los datos (visores) no adquieren bloqueos internos.
Nota: la memoria de ASH proviene del Área Global del Sistema (SGA) y permanece fija mientras
dure la instancia. Representa 2 MB de memoria por CPU. ASH no puede superar el límite máximo de
5% del tamaño del pool compartido o el 5% de SGA_TARGET.
Sesión 1 V$ACTIVE_SESSION_HISTORY
Bloqueo
de espera Sesión 2
E/S de espera activa
1 seg Bloque de espera
E/S de espera de la sesión 1
E/S de espera E/S de espera de la sesión 1
Bloqueo Bloque de espera Sesión 3
de espera
de la sesión 1 activa s a
1 seg
E/S de espera … ) h a
E/S de espera
… ASH m
co… eฺ
i l ฺ
Bloque
de espera g ma G uid
Sesiónn
n d a b l
Creaciónle
a sfede
dexEjemplos
r ASH: Ejemplo
l
Como an
y Aya sen-hatrexplicado, ASH representa el historial de la actividad de sesiones recientes. En el
u
Jdiagramao
n se muestra cómo se toman ejemplos de las sesiones cuando están activas. Cada segundo, el
servidor de la base de datos Oracle examina las sesiones activas y registra los eventos que están
esperando estas sesiones. De las sesiones no activas no se toman ejemplos. El servicio de toma de
ejemplos resulta muy eficaz, ya que accede directamente a las estructuras internas de Oracle
Database. A continuación, se muestra la información de ejemplo:
• Identificador SQL de sentencia SQL
• Número de objeto, número de archivo y número de bloque
• Identificador y parámetros de eventos de espera
• Identificador de sesión y número de serie de sesión
• Nombre de módulo y acción
• Identificador de cliente de la sesión
• Identificador hash de servicio
Para acceder a las estadísticas ASH, utilice la vista fijaV$ACTIVE_SESSION_HISTORY. Esta
vista contiene una fila para cada sesión activa por ejemplo. Todas las columnas que describen la
sesión en ASH están presentes en la vista V$SESSION.
• V$ACTIVE_SESSION_HISTORY
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
• DBA_HIST_ACTIVE_SESS_HISTORY
• Informe ASH
• Páginas de rendimiento de EM Diagnostic Pack
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Acceso ale xa ASH
Datos s f er
Sely
A trana los datos ASH de diferentes maneras. Puede utilizar SQL*Plus para acceder a
u -
puede acceder
non
JV$ACTIVE_SESSION_HISTORY y DBA_HIST_ACTIVE_SESS_HISTORY. También puede
generar un informe de ASH a partir de SQL*Plus con el script
$ORACLE_HOME/rdbms/admin/ashrpt.sql. En Enterprise Manager, puede generar un
informe de historial de sesiones activas o puede utilizar las páginas Top Activity, a las que se accede
desde la página Enterprise Manager Performance, para mostrar los datos ASH.
• GROUP BY y COUNT
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
SELECT sql_id, count(*),
round(count(*)/sum(count(*)) over (), 2) pctload )h a
o m
FROM v$active_session_history
a ilฺc ideฺ
WHERE sample_time > sysdate -1/24/60 and
@ gm t Gu
ng uden
session_type <> 'BACKGROUND'
a i
GROUP BY sql_id
ORDER BY count(*) desc; ( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e
Análisis lde
a ASH
xDatos s f er
A sentencias
•lyUtilice
- t r an SQL normales para analizar cualquier porción de tiempo que desee mediante
u
non
J V$ACTIVE_SESSION_HISTORY. Sin embargo, cuantos más ejemplos incluya en el análisis,
más precisos serán los resultados. Como ya se ha explicado, puede extraer los datos de ASH
mediante dimensiones distintas como, por ejemplo, SQL_ID, ACTION o un número de objeto.
• La sentencia SQL que se muestra en la diapositiva devuelve la lista de las sentencias SQL más
activas que se han ejecutado en la instancia durante el último minuto.
• Los recuentos en ASH están relacionados directamente con el tiempo de base de datos mostrado
en los informes ADDM y AWR. Cada recuento de ASH utiliza parte del tiempo de base de
datos, aunque los datos ASH sean de ejemplo, estadísticamente los elementos que utilizan la
mayor parte del tiempo de base de datos tendrán recuentos más altos en los datos ASH. La
ventaja del informe ASH es que puede ver fácilmente si la espera se está acumulando en el
tiempo, muchas esperas en un período largo o unas pocas esperas en un período corto de tiempo.
Los informes ADDM y AWR normalmente consultan un período que oscila entre 30 minutos y
24 horas; el informe ASH permite examinar períodos medidos en minutos.
Nota: también puede utilizar la vista DBA_HIST_ACTIVE_SESSION_HISTORY del repositorio
de carga de trabajo cuando desee acceder a datos que ya no estén en memoria. Sin embargo, el
número de ejemplos almacenados en la versión del disco de ASH es menor que su correspondiente
versión en memoria: un ejemplo cada 10 segundos.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Generaciónl e a Informes
xde s f er ASH
y A nASH
Ellinforme
u - t raesnun resumen de los ejemplos de ASH que se tomaron durante un período de
Jtiempo.noEntre la información que muestra, se encuentran los principales eventos de espera, los SQL
principales, los tipos de comandos SQL principales y las sesiones principales. El informe ASH, que
se ejecuta en datos ASH recopilados, se puede centrar en un período de tiempo de días, horas o
minutos. Las horas de inicio y finalización no se restringen al momento en que se realizaron las
instantáneas de AWR; el período puede abarcar límites de instantáneas. Esto hace posible centrar el
análisis en un período de tiempo corto; incluso tan pequeño como un período de tan sólo unos
minutos.
Mediante Enterprise Manager, genere un informe ASH accediendo a la página Performance y, a
continuación, haciendo clic en Run ASH Report. En la página Performance, también puede hacer clic
en el enlace Top Activity. En la página Top Activity, para seleccionar un intervalo de 5 minutos
arrastre el área sombreada y, a continuación, haga clic en Run ASH Report.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j a s S t
g ó n
V$ACTIVE_SESSION_HISTORY
e t his
ra us
DBA_HIST_ACTIVE_SESSION_HISTORY
A
h e z e to
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
e
Informe ASH:
l xaSección
s f erGeneral
Laly
A traSource
columna -Data
n del resumen del informe muestra el origen de los datos. Puede tener dos
u on porque los datos de V$ACTIVE_SESSION_HISTORY, que son datos en
Jvaloresndiferentes
memoria, migran regularmente a DBA_HIST_ACTIVE_SESS_HISTORY, que son datos en disco.
Esta migración ayuda a liberar los requisitos de memoria. Durante la migración, los datos se reducen
de ejemplos de un segundo a ejemplos de diez segundos, por lo que ocupan una décima parte del
espacio en disco. Debido a esa diferencia de granularidad, los datos que provienen de la memoria
pueden ser más precisos que los que proceden de la vista del historial.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Estructura
l e xdela Informe
s f erASH
la A
Enly diapositiva
- t r asen muestran varias de las secciones del informe ASH. El informe ASH sigue el
u
Jpatrónndeloninforme de AWR. Empezando por la parte superior derecha de la diapositiva, las secciones
del informe son:
• Top Events: informa de los eventos de usuario, los eventos en segundo plano y los valores de
parámetro de eventos.
• Load Profile: informa del servicio/módulo principal y los clientes principales e identifica el tipo
de comandos SQL y las fases de ejecución principal.
• Top SQL: informa de las sentencias SQL principales asociadas a los eventos principales, SQL
asociado a los orígenes de las filas principales, SQL principal que utiliza literales y el texto SQL
para estas sentencias SQL.
• Top PL/SQL Procedures: muestra los procedimientos PL/SQL que se han tenido en cuenta
para los porcentajes más altos del ejemplo de la actividad de sesión.
• Top Java Workload: describe los programas de Java principales en el ejemplo de la actividad
de sesión.
• Top Sessions: informa de las sesiones principales que estaban esperando, las sesiones
bloqueantes principales y los agregados para las sesiones PQ.
• Top Objects/Files/Latches: informa de los objetos, archivos o bloqueos internos principales
que se vieron implicados en una espera.
• Activity Over Time: informa de los tres eventos de espera principales para 10 períodos de
tiempo de igual tamaño durante el período del informe.
Este informe le permite visualizar la actividad detallada de la última hora.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
xaActivity f r Time
eOver
Informe ASH:
l e s
l
Una
u - ran más informativas del informe ASH es la sección Activity Over Time. En esta
ydeAlasnsecciones
t
Jsección,noel período de tiempo del informe ASH se divide en 10 intervalos. Si el período de tiempo es
demasiado corto o los datos demasiado dispersos, el informe resultante tendrá menos intervalos. Los
intervalos 2 a 9 se definen como un número entero de minutos, todos de igual tamaño para realizar
una comparación sencilla. Por lo tanto, es mejor comparar entre sí los intervalos internos.
Mediante la sección Activity Over Time, puede realizar análisis sesgados buscando picos en la
columna Event Count. Esto indicaría un aumento del número de procesos en espera de un evento
concreto. Un pico en Slot Count indica un aumento de las sesiones activas porque los datos ASH se
toman como ejemplo sólo de las sesiones activas. En el ejemplo que se muestra, tenga en cuenta el
evento marcado. El número de ejemplos de sesiones activas ha aumentado y el número de sesiones
asociadas al evento buffer busy waits también ha aumentado. Este tipo de datos sesgados en
un intervalo representa posiblemente la causa raíz del problema que se investiga.
DBA_HIST_DB_CACHE_ADVICE
• DBA_HIST_DISPATCHER
• DBA_HIST_DYN_REMASTER_STATS
• DBA_HIST_IOSTAT_DETAIL
• DBA_HIST_SHARED_SERVER_SUMMARY
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
xa sfeVistas
Nuevas loeMejoradas
r de Repositorio de Carga de Trabajo Automática
l
Las - an de estadísticas de AWR nuevas están disponibles en Oracle Database 11g,
A trvistas
ysiguientes
u
JVersiónno2:n
• DBA_HIST_DB_CACHE_ADVICE: muestra predicciones históricas del número de lecturas
físicas para el tamaño de caché que corresponde a cada fila.
• DBA_HIST_DISPATCHER: muestra información histórica de cada proceso del distribuidor en
el momento de la instantánea.
• DBA_HIST_DYN_REMASTER_STATS: muestra información estadística sobre el proceso de
remasterización dinámica.
• DBA_HIST_IOSTAT_DETAIL: muestra las estadísticas de E/S históricas agregadas por tipo
de archivo y función.
• DBA_HIST_SHARED_SERVER_SUMMARY: muestra información histórica de servidores
compartidos, como actividad del servidor compartido, colas comunes y colas de distribuidor.
Prueba
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Respuesta:l e xba sfer
Esly
A ranse almacena una hora de datos ASH en la memoria, pero los datos de memoria son
cierto que-tsólo
u
noynse colocan en la tabla DBA_HIST_ACTIVE_SESS_HISTORY del repositorio de carga
Jejemplos
de trabajo automática y estos datos están disponibles durante el tiempo que se retengan las
instantáneas de AWR.
Resumen
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates. FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Supervisión de Aplicaciones
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Objetivos
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
¿Qué es un Servicio?
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Un servicio es:
• Un método para agrupar sesiones por tipo de trabajo
• Una abstracción que presenta datos independientes de la
instancia
• Una parte de las tareas de administración habituales que
proporcionan asignación dinámica de servicio a instancia
• La base de la alta disponibilidad de conexiones s a
) h a
• Una dimensión de ajustes de rendimiento adicionalcom
a ilฺ ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e
¿Qué es lun a sfer
xServicio?
A servicios
•lyLos
- t r anorganizan la ejecución de los trabajos en la base de datos para que el trabajo sea
u
J más n
ogestionable, medible, ajustable y recuperable. Un servicio es un grupo de tareas
n
relacionadas en la base de datos con funciones, expectativas de calidad y prioridad comunes en
relación con otros servicios.
• Los servicios son una capa de abstracción que permite a los clientes y niveles medios acceder a
los datos necesarios de la base de datos independientemente de donde resida la instancia o
instancias; por lo tanto los servicios proporcionan una imagen de sistema individual para
gestionar aplicaciones en competencia que se ejecutan en una única instancia y entre varias
instancias. Mediante interfaces estándar, como DBCA, Enterprise Manager y SRVCTL, los
servicios se pueden configurar, administrar, activar, desactivar y medir como una entidad única.
• Los servicios proporcionan disponibilidad. Tras una interrupción, el servicio se recupera de
forma automática en las instancias supervivientes.
• Los servicios proporcionan una dimensión adicional para el ajuste de rendimiento. Con los
servicios, se pueden ver y medir las cargas de trabajo. El ajuste por “servicio y SQL” sustituye al
ajuste por “sesión y SQL” en los sistemas en los que las sesiones son anónimas y se comparten.
• Los servicios son dinámicos: El número de instancias que ejecuta un servicio se puede aumentar
si aumenta la carga, o bien reducir si ésta disminuye. Esta asignación de recursos dinámica
permite utilizar una solución rentable para satisfacer las demandas a medida que se producen.
• Los servicios se han diseñado para su uso en diferentes bases de datos de instancia, pero
proporcionan un modo práctico de supervisar varias aplicaciones en una base de datos de
instancia única.
Oracle Database 11g: Ajuste de Rendimiento 8-3
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Atributos de Servicio
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Tipos de Servicios
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
• Servicios de aplicaciones
• Servicios internos:
– SYS$BACKGROUND
– SYS$USERS
– No se pueden suprimir o cambiar
• Límite de 118 servicios por base de datos:
– 116 servicios de aplicaciones s a
)h a
– 2 servicios internos o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e xa sfer
Tipos delServicios
A Database
•lyOracle
- t r an soporta dos amplios tipos de servicios: servicios de aplicaciones y servicios
u
non Los servicios de aplicaciones son principalmente asignaciones funcionales a cargas de
J internos.
trabajo. Las sesiones que realizan un trabajo para una función de negocio común se agrupan
juntas. Para las Aplicaciones Oracle, AP, AR, GL, MFG, WIP, BOM, etc. crean una división
funcional de trabajo en la base de datos y, por lo tanto, se pueden clasificar como servicios.
• Además de los servicios de aplicaciones, RDBMS también soporta dos servicios internos.
SYS$BACKGROUND sólo lo utilizan los procesos en segundo plano. SYS$USERS es el servicio
por defecto para sesiones de usuario no asociadas a ningún servicio de aplicación. Ambos
servicios internos dan soporte a todas las funciones de gestión de cargas de trabajo y ninguno se
puede parar ni desactivar.
• Existe una limitación de 118 servicios por base de datos: 116 servicios de aplicaciones y
2 servicios internos. Puede que haya algunos servicios creados por DBCA, como el servicio
<dbname>XDB, necesario para la mayoría de las bases de datos. Los nombres de servicio
tienen una restricción de 64 caracteres.
Nota: los servicios de sombra utilizados por failover de aplicación transparente también se incluyen
en la categoría de servicios de aplicación. Además, también se crea un servicio para cada cola de
flujos en buffer.
Creación de Servicios
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
n d a b l
Creaciónle
a sfer
dexServicios
Aigual que
•lyAl t r n objetos de base de datos, se realiza el mantenimiento y el seguimiento de los
aotros
u -
non a través del diccionario de datos y las vistas de rendimiento dinámico.
J servicios
• Cada servicio tiene un nombre único que lo identifica localmente en el cluster y globalmente
para Data Guard.
• Para un entorno de instancia única, los servicios se pueden crear con el paquete
DBMS_SERVICE.
• Los servicios también se crean implícitamente en el inicio de la instancia de acuerdo con los
valores definidos para el parámetro de inicialización SERVICE_NAMES.
• Los servicios también se pueden mantener con SRVCTL y Enterprise Manager.
• En entornos con Oracle Restart, Oracle recomienda utilizar SRVCTL para crear los servicios de
base de datos.
Gestión de Servicios en un
Entorno de Instancia Única
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
• Iniciar un servicio.
exec DBMS_SERVICE.START_SERVICE('SERV1');
• Parar un servicio.
exec DBMS_SERVICE.STOP_SERVICE('SERV1');
s a
• Suprimir un servicio. )h a
o m
ilฺc ideฺ
exec DBMS_SERVICE.DELETE_SERVICE('SERV1');
m Gua
• Desconectar las sesiones conectadas en ungservicio.
exec DBMS_SERVICE.DISCONNECT_SESSION('SERV1'); i n g dent
@
a s a tu
( j S
g ó n
e t his
A ra us
h e z e to
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
Gestión de e a sfeenr un Entorno de Instancia Única
xServicios
l
A tran
u l•yCREATE_SERVICE:
n - este procedimiento crea un nombre de servicio en el diccionario de datos.
J Los o
n servicios también se crean en el diccionario de datos de forma implícita cuando se define el
servicio en el parámetro de inicialización SERVICE_NAMES o mediante el comando ALTER
SYSTEM SET SERVICE_NAMES. Al crear un servicio, debe especificar su nombre y su
nombre de red. El nombre de red se debe utilizar en el parámetro SERVICE_NAME del
descriptor de conexión correspondiente.
• START_SERVICE: este procedimiento inicia un servicio. En un entorno de instancia única, este
procedimiento modifica SERVICE_NAMES para que contenga el nombre de este servicio. En
RAC, al implementar esta opción se actúa en la instancia especificada.
• STOP_SERVICE: este procedimiento detiene un servicio. En un entorno de instancia única, este
procedimiento modifica SERVICE_NAMES para que elimine el nombre de este servicio.
• DELETE_SERVICE: este procedimiento suprime un servicio del diccionario de datos. Debe
parar el servicio antes de poder suprimirlo.
• DISCONNECT_SESSION: este procedimiento desconecta sesiones con el servicio con nombre
en la instancia actual. Este subprograma no devuelve ningún valor hasta que todas las sesiones
correspondientes se han desconectado.
Nota: para obtener más información sobre el paquete DBMS_SERVICE, consulte PL/SQL Packages
and Types Reference (Referencia de Paquetes y Tipos PL/SQL).
ERP=(DESCRIPTION=
(LOAD_BALANCE=on)
(ADDRESS=(PROTOCOL=TCP)(HOST=node-1vip)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=node-2vip)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=node-3vip)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=node-4vip)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=ERP)))
url="jdbc:oracle:oci:@ERP" s a
)h a
o m
url="jdbc:oracle:thin:@(DESCRIPTION= a ilฺc ideฺ
(LOAD_BALANCE=on)
@ gm t Gu
(ADDRESS=(PROTOCOL=TCP)(HOST=node-1vip)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=node-2vip)(PORT=1521)) a i ng uden
( j as is St
(ADDRESS=(PROTOCOL=TCP)(HOST=node-3vip)(PORT=1521))
ó n
(ADDRESS=(PROTOCOL=TCP)(HOST=node-4vip)(PORT=1521))
g th
a e
Ar to us
(CONNECT_DATA=(SERVICE_NAME=ERP)))"
z
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
xa con f r
eAplicaciones
l e
Uso de Servicios
A servicios n s Cliente
•lyLos
- t r a son más útiles si varios servidores ofrecen el mismo servicio que en un entorno de
Ju RAC. n
no Los ejemplos utilizan una base de datos RAC con cuatro nodos.
• Las aplicaciones y los pools de conexiones de nivel medio seleccionan un servicio mediante el
descriptor de conexión TNS.
• El servicio seleccionado debe coincidir con el servicio creado.
• Las listas de direcciones de cada ejemplo de la diapositiva utilizan direcciones IP virtuales. Con
las direcciones IP virtuales para la comunicación de clientes se asegura que las conexiones y las
sentencias SQL emitidas en relación con un nodo que está caído no den como resultado un
timeout de TCP/IP.
• En el primer ejemplo de la diapositiva se muestra el descriptor de conexión TNS que se puede
utilizar para acceder al servicio ERP.
• En el segundo ejemplo se muestra la URL de JDBC gruesa mediante el descriptor de conexión
TNS definido previamente.
• En el tercer ejemplo se muestra la URL de JDBC fina mediante el mismo descriptor de conexión
TNS.
Nota: la Red de Oracle utiliza la cláusula LOAD_BALANCE=ON para asignar de forma aleatoria su
progreso a través de direcciones de protocolo del descriptor de conexión. Esta función se denomina
equilibrio de carga de conexión de cliente.
AP Recursos de la instancia
s a
)h a
75%ilฺco
m
Conexiones AP
a d e ฺ
gm t Gu i
@
ng ud25% en
LOTE a
LOTE i
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e xa con
Uso de Servicios
l s f eelr Gestor de Recursos
•lyElAGestortrde
n
aRecursos de la Base de Datos (también denominado Gestor de Recursos) permite
u n
J identificar-
no el trabajo mediante servicios. Gestiona la prioridad relativa de los servicios dentro de
una instancia mediante el enlace directo de servicios a grupos de consumidores. Cuando un
cliente se conecta mediante un servicio, el grupo de consumidores se asigna de forma
transparente en el momento de la conexión. De esta forma, el Gestor de Recursos puede
gestionar las solicitudes de trabajo por servicio en orden de importancia.
• Por ejemplo, el usuario define los servicios AP y BATCH para que se ejecuten en la misma
instancia y asigna AP a un grupo de consumidores de prioridad alta y BATCH a uno de
prioridad baja. Las sesiones que se conecten a la base de datos con el servicio AP especificado
en su descriptor de conexión TNS tendrán prioridad sobre aquéllas que se conecten al servicio
BATCH.
• Esto aporta ventajas a la gestión de cargas de trabajo, ya que se da prioridad a las funciones de
negocio en lugar de a las sesiones que soportan dichas funciones.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Serviciosle
a
yxGestorsde f r
eRecursos con EM
A trManager
•lyEnterprise a n (EM) presenta una interfaz gráfica de usuario a través de la página Resource
Ju Consumern -
no Group Mapping para asignar automáticamente sesiones a grupos de consumidores.
Para acceder a esta página, haga clic en el enlace Resource Consumer Group Mappings de la
página Server.
• En la página con separadores General de la página Resource Consumer Group Mappings, puede
configurar una asignación de sesiones que se conecten con un nombre de servicio a grupos de
consumidores. Además, en esta página hay una opción para un nombre de módulo y asignación
de acciones.
• Al poder asignar sesiones a grupos de consumidores por servicio, módulo y acción, tiene una
mayor flexibilidad en lo que se refiere a la gestión del rendimiento de distintas cargas de trabajo
de aplicación.
Nota: la página con separadores Priorities de la página Resource Consumer Group Mappings permite
definir prioridades para las asignaciones configuradas en la página con separadores General. Las
opciones de asignación corresponden a columnas de V$SESSION. Cuando varias columnas de
asignación tienen valores, las prioridades definidas determinan la prioridad para asignar sesiones a
grupos de consumidores.
Servicios y
Gestor de Recursos: Ejemplo
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA;
exec DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(-
CONSUMER_GROUP => 'HIGH_PRIORITY',-
COMMENT => 'High priority consumer group');
exec DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(-
ATTRIBUTE => DBMS_RESOURCE_MANAGER.SERVICE_NAME,-
VALUE => 'AP',-
CONSUMER_GROUP => 'HIGH_PRIORITY'); s a
exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA; )h a
o m
a ilฺc ideฺ
exec - @ gm t Gu
DBMS_RESOURCE_MANAGER_PRIVS.GRANT_SWITCH_CONSUMER_GROUP(-
a i ng uden
GRANTEE_NAME => 'PUBLIC',- ( j as is St
CONSUMER_GROUP => 'HIGH_PRIORITY',-
g ó n th
a e
GRANT_OPTION => FALSE);
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
a
yxGestorsde
Serviciosle f r
eRecursos: Ejemplo
A tranque la ubicación tiene dos grupos de consumidores denominados
•lySupongamos
-
Ju HIGH_PRIORITY
non y LOW_PRIORITY. Estos grupos de consumidores se asignan a un plan de
recursos para la base de datos que refleja los ratios o el consumo de recursos deseados.
• Antes de asignar servicios a los grupos de consumidores, primero debe crear los grupos de
consumidores y el plan de recursos para ellos. El plan de recursos se puede basar en la prioridad
o en el ratio. Las llamadas PL/SQL que se muestran en la diapositiva se utilizan para crear el
grupo de consumidores HIGH_PRIORITY y para asignar el servicio AP a dicho grupo de
consumidores HIGH_PRIORITY. Puede utilizar llamadas similares para crear los grupos de
consumidores LOW_PRIORITY y para asignar el servicio BATCH a dicho grupo de
consumidores LOW_PRIORITY.
• La última llamada PL/SQL del ejemplo de la diapositiva se ejecuta porque las sesiones se
asignan automáticamente sólo a grupos de consumidores a los que se les han otorgado
privilegios de cambio. Se debe ejecutar una llamada similar para el grupo de consumidores
LOW_PRIORITY.
Nota: para obtener más información sobre el Gestor de Recursos de la Base de Datos, consulte la
guía Oracle Database Administrator’s Guide (Guía del Administrador de Oracle Database) y
PL/SQL Packages and Types Reference. (Referencia de Tipos y Paquetes PL/SQL).
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Serviciosle
a sfer con EM
yxProgramador
- t r an utiliza los servicios. Cuando el usuario crea una clase de trabajo, define el
•lyElAProgramador
u
non que utiliza la clase de trabajo. Los trabajos se asignan a las clases de trabajo y éstas se
J servicio
ejecutan en servicios. El uso de servicios con clases de trabajo garantiza que se identifica el
trabajo del Programador para la gestión de cargas de trabajo y el ajuste de rendimiento.
• Por ejemplo, los trabajos heredan alertas generadas por el servidor y umbrales de rendimiento
para el servicio en el que se ejecutan.
• Para configurar que un trabajo se ejecute en un servicio específico, haga clic en el enlace Job
Classes de la sección Database Scheduler de la página Server. Se abre la página Scheduler Job
Classes. En la página Scheduler Job Classes, puede ver los servicios asignados a las clases de
trabajos.
• Al hacer clic en el botón Create de la página Scheduler Job Classes, aparece la página Create
Job Class. En esta página, puede introducir detalles de una nueva clase de trabajo, incluido el
servicio en el que se debe ejecutar.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
a sfer con EM (continuación)
yxProgramador
Serviciosle
•lyDespués
n
A tderaconfigurar la clase de trabajo con el servicio en el que desea que se ejecute, puede
u
J crear n -
no el trabajo.
• Para crear el trabajo, haga clic en el enlace Jobs situado encima del enlace Job Classes de la
página Server. Aparecerá la página Scheduler Jobs en la que podrá hacer clic en el botón Create
para crear un nuevo trabajo. Al hacer clic en el botón Create, se mostrará la página Create Job.
Esta página tiene separadores diferentes: General, Schedule y Options. Utilice la página con
separadores General para asignar el trabajo a una clase de trabajo.
DBMS_SCHEDULER.CREATE_JOB_CLASS(
JOB_CLASS_NAME => 'HOT_BATCH_CLASS',
RESOURCE_CONSUMER_GROUP => NULL,
SERVICE => 'HOT_BATCH_SERV',
LOGGING_LEVEL => DBMS_SCHEDULER.LOGGING_RUNS,
LOG_HISTORY => 30, COMMENTS => 'P1 batch');
DBMS_SCHEDULER.CREATE_JOB( s a
)h a
JOB_NAME => 'my_report_job',
o m
JOB_TYPE => 'stored_procedure',
a ilฺc ideฺ
JOB_ACTION => 'my_name.my_proc();',
NUMBER_OF_ARGUMENTS => 4, START_DATE => SYSDATE+1, @ gm t Gu
REPEAT_INTERVAL => 5, END_DATE => SYSDATE+30, a i ng uden
JOB_CLASS => 'HOT_BATCH_CLASS', ENABLED => TRUE,( j as is St
g ó n
AUTO_DROP => false, COMMENTS => 'daily status'); th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
a sfer Ejemplo
yxProgramador:
Serviciosle
•lyEn
- t an de PL/SQL, se define una cola de lotes, HOT_BATCH_CLASS, gestionada por
Aeste ejemplo
r
u on
J elnprogramador. Asocia el servicio HOT_BATCH_SERV a la cola HOT_BATCH_CLASS. Se da
por hecho que ya ha definido el servicio HOT_BATCH_SERV.
• Una vez definida la clase, puede definir el trabajo. En este ejemplo, el trabajo
MY_REPORT_JOB se ejecuta en la clase de trabajo HOT_BATCH_CLASS en instancias que
ofrecen el servicio HOT_BATCH_SERV.
• En este ejemplo, el usuario no asigna ningún grupo de consumidores de recursos a la clase de
trabajo HOT_BATCH_CLASS. Sin embargo, es posible asignar un grupo de consumidores a una
clase. En lo que respecta a los servicios, esto permite combinar trabajos del programador y
priorización de servicios con el Gestor de Recursos de la Base de Datos.
Nota: para obtener más información sobre el programador, consulte la guía Oracle Database
Administrator’s Guide (Guía del Administrador de Oracle Database) y PL/SQL Packages and Types
Reference (Referencia de Tipos y Paquetes PL/SQL).
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Cambio de e a sfeder Servicio con EM
xUmbrales
l an se muestra la página Metric and Policy Settings. En la captura de pantalla se
Ala diapositiva
u•lyEn
- t r
non una parte de la página en la que puede ver las métricas Service CPU Time (per user
J muestra
call) y Service Response Time (per user call).
• Para acceder a la página Metric and Policy Settings, haga clic en el enlace Metric and Policy
Settings en la página inicial. En la página Metric and Policy Settings, puede cambiar los valores
críticos y de advertencia para las métricas de servicio. Si modifica los valores críticos y de
advertencia en esta página, los umbrales se aplican a todos los servicios de la instancia.
• Si desea diferentes umbrales para distintos servicios, haga clic en el botón Edit situado a la
derecha. Aparecerá otra página en la que podrá definir umbrales críticos y de advertencia para
servicios individuales.
exec DBMS_SERVER_ALERT.SET_THRESHOLD(-
METRICS_ID => dbms_server_alert.elapsed_time_per_call,
WARNING_OPERATOR => dbms_server_alert.operator_ge,
WARNING_VALUE => '500000',
CRITICAL_OPERATOR => dbms_server_alert.operator_ge,
CRITICAL_VALUE => '750000',
OBSERVATION_PERIOD => 15,
s a
CONSECUTIVE_OCCURRENCES => 3,
)h a
INSTANCE_NAME => 'I0n',
o m
OBJECT_TYPE => dbms_server_alert.object_type_service,
a ilฺc ideฺ
OBJECT_NAME => 'ERP');
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
a sfeder Métrica: Ejemplo
yxUmbrales
Serviciosle
•lyEn
- t an se agregan umbrales para el servicio ERP de la métrica
Aeste ejemplo,
r
u
non
J ELAPSED_TIME_PER_CALL. Esta métrica mide el tiempo transcurrido para cada llamada de
usuario para el servicio correspondiente. El tiempo se debe expresar en microsegundos.
• El servidor emite una alerta de advertencia siempre que el tiempo medio transcurrido por
llamada para el servicio ERP a lo largo de un período de 15 minutos supere los 0,5 segundos tres
veces consecutivas.
• El servidor emite una alerta crítica siempre que el tiempo medio transcurrido por llamada para el
servicio ERP a lo largo de un período de 15 minutos supere los 0,75 segundos tres veces
consecutivas.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Página de
l e xa sfer de Servicios Principales
Rendimiento
•lyDesde
- r an Performance, puede acceder a la página Top Consumers haciendo clic en el
A la tpágina
u
nonTop Consumers.
J enlace
• La página Top Consumers tiene varios separadores para mostrar la base de datos como una
imagen de sistema individual. La página con separadores Overview contiene cuatro gráficas
circulares: Top Clients, Top Services, Top Modules y Top Actions. Cada gráfico proporciona
una perspectiva diferente con respecto a los principales consumidores de recursos de la base de
datos.
• La página con separadores Top Services muestra información relacionada con el rendimiento
para los servicios definidos en la base de datos. Mediante esta página, puede activar o desactivar
el rastreo a nivel de servicio, así como ver el archivo de rastreo SQL resultante.
n d a b l
Configuración
l e s f er
xa de Agregación de Servicios
A
• yEn
t r a n
cada instancia, el servicio agrega y recopila de forma automática los eventos de espera y las
u l
J non -
estadísticas importantes. Este nivel de agregación es automático si se especifica SERVICE_NAME
en la cadena de conexión. Cada cadena de conexión se puede asociar a un servicio diferente. Puede
lograr un nivel más detallado de granularidad de la recopilación de estadísticas para los servicios,
utilizando el procedimiento SERV_MOD_ACT_STAT_ENABLE del paquete DBMS_MONITOR.
Este procedimiento permite recopilar estadísticas para combinaciones jerárquicas adicionales de
SERVICE_NAME/MODULE y SERVICE_NAME/MODULE/ACTION. El procedimiento
SERV_MOD_ACT_STAT_DISABLE detiene la recopilación de estadísticas activada. La activación
o desactivación de la agregación de estadísticas en el servicio se aplica a todas las instancias que
acceden a la base de datos. Además, esta configuración es persistente tras los reinicios de la
instancia.
• El procedimiento SERV_MOD_ACT_TRACE_ENABLE permite el rastreo de servicios con tres
posibilidades jerárquicas: SERVICE_NAME, SERVICE_NAME/MODULE y
SERVICE_NAME/MODULE/ACTION. El valor por defecto es rastrear todas las instancias que
acceden a la base de datos. Se proporciona un parámetro que restringe el rastreo a instancias
especificadas en las que se sabe que hay un rendimiento bajo. Este procedimiento también ofrece la
opción de capturar valores de variable ligada y esperas relevantes en los archivos de rastreo
generados.
• SERV_MOD_ACT_TRACE_DISABLE desactiva el rastreo en todas las instancias activadas para
una combinación determinada de servicio, módulo y acción. Al igual que la recopilación de
estadísticas mencionada anteriormente, el rastreo de servicios persiste tras los reinicios de la
instancia.
exec DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE(-
'AP', 'PAYMENTS');
exec DBMS_MONITOR.CLIENT_ID_STAT_ENABLE('HR.HR');
n d a b l
xyaRastreof r Identificador de Cliente
ede
Agregación
l e s
n utilizar el paquete DBMS_MONITOR para activar y desactivar la agregación
A tesraposible
•lyTambién
u on -
J denestadísticas de un identificador de cliente determinado. El identificador de cliente se define
mediante el procedimiento DBMS_SESSION.SET_IDENTIFIER y es visible gracias a la
columna CLIENT_IDENTIFIER de V$SESSION.
• V$CLIENT_STATS muestra las medidas resultantes de todas las sesiones que estén activas con
el identificador de cliente por instancia. De forma similar a las estadísticas agregadas
disponibles para la agregación del servicio, las estadísticas publicadas en V$CLIENT_STATS
son un subjuego de las disponibles en V$SESSTAT y V$SESS_TIME_MODEL.
• Mediante el procedimiento CLIENT_ID_STAT_DISABLE es posible desactivar la
acumulación de las estadísticas del modelo de espera del identificador de cliente especificado.
• El procedimiento CLIENT_ID_TRACE_ENABLE activa el rastreo de forma global para la base
de datos de un identificador de cliente determinado. Como se puede ver en el ejemplo, también
se puede solicitar un volcado de los eventos de espera y de las variables de enlace a los archivos
de rastreo.
• Utilice el procedimiento CLIENT_ID_TRACE_DISABLE para desactivar la generación de
archivos de rastreo para un identificador de cliente especificado.
Nota: puede utilizar la página Top Clients a la que puede acceder desde la página Top Consumers de
Enterprise Manager para realizar lo mismo de forma gráfica que con la interfaz PL/SQL.
Utilidad trcsess
n ( j
a g ó
Archivo e th
z Ar de tinforme
o us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e xa sfer
Utilidad trcsess
l
Autilidad
•lyLa t r n
atrcsess consolida la salida de rastreo de archivos de rastreo seleccionados en
u
J función n -
no de varios criterios: ID de sesión, ID de cliente, nombre del servicio, nombre de la acción
y nombre del módulo. Después de que trcsess fusione la información de rastreo en un único
archivo de salida, tkprof puede procesar dicho archivo. Con el procedimiento
DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE, la información de rastreo se presenta
en varios archivos de rastreo y debe utilizar la herramienta trcsess para recopilarla en un
único archivo. La utilidad trcsess es útil para consolidar el rastreo de una sesión o servicio
concreto con fines de rendimiento o depuración.
• El rastreo de una sesión específica no suele ser un problema en el modelo de servidor dedicado
porque un proceso dedicado único sirve a una sesión mientras dure. Toda la información de
rastreo de la sesión se puede ver en el archivo de rastreo que pertenece al servidor dedicado que
le aporta servicio. Sin embargo, el rastreo de un servicio puede convertirse en una tarea
compleja incluso en el modelo de servidor dedicado.
• Además, en una configuración de servidor compartido, distintos procesos sirven a una sesión de
usuario de vez en cuando. El rastreo perteneciente a la sesión de usuario se dispersa en distintos
archivos de rastreo que pertenecen a procesos diferentes. Esto dificulta la obtención de una
imagen completa del ciclo de vida de una sesión.
n d a b l
Vistas dele xa sferde los Servicios
Rendimiento
Laly
A tradenservicios, módulos y acciones se puede ver en V$SESSION y
u -
información
non
JV$ACTIVE_SESSION_HISTORY.
Los tiempos de llamadas y las estadísticas de rendimiento se pueden ver en V$SERVICE_STATS,
V$SERVICE_EVENT, V$SERVICE_WAIT_CLASS, V$SERVICEMETRIC y
V$SERVICEMETRIC_HISTORY. Estas vistas muestran las estadísticas y métricas recopiladas a
nivel de servicio. Los ejemplos son:
SQL> SELECT service_name, stat_name, value
2 FROM V$SERVICE_STATS
3 WHERE service_name = 'SERV1';
Cuando está activa la recopilación de estadísticas para módulos y acciones específicos, las medidas
de rendimiento se pueden ver en cada instancia de V$SERV_MOD_ACT_STATS.
De las más de 300 estadísticas relacionadas con el rendimiento que se rastrean y se pueden ver en s a
)h
V$SYSSTAT, 28 se rastrean para los servicios. Para ver las estadísticas medidas para servicios,a
m
lฺco deฺ
ejecute la siguiente consulta:
SELECT DISTINCT stat_name FROM V$SERVICE_STATSai
g G ui que mide el
muna estadística
De las 28 estadísticas, cabe mencionar DB time y DB CPU. DB time
g@ es
e n t
tiempo medio de respuesta por llamada. Representa el tiempoa i n
real que
u d
tarda una llamada en terminar.
s
apor llamada. t
DB CPU es una media del tiempo de CPU real empleado
de respuesta y el tiempo de CPU es el tiempog deóespera is S Una
n (j delthservicio.
La diferencia entre el tiempo
vez que se conoce el tiempo
de espera, y si consume un gran porcentaje a e
usde respuesta, puede realizar un rastreo a nivel
r de tiempo
z A t o
n c he nse
de acción para identificar las esperas.
a lice muestra información sobre la agregación de estadísticas a
Nota: DBA_ENABLED_AGGREGATIONS
S
r a ble
petición activada. DBA_ENABLED_TRACES
d muestra información sobre los rastreos activados.
e x an sfera
l y Al tran
Ju non-
Prueba
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Resumen
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates. FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Objetivos
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Open Close
Fase de Análisis
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
• Fase de análisis:
– Siempre:
— Comprueba la sintaxis
— Comprueba la semántica y los privilegios
– Análisis ligero:
— Busca la sentencia en el pool compartido
– Análisis pesado:
s a
— Fusiona definiciones de vista y subconsultas ) h a
o m
— Determina un plan de ejecución
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e xa sfer
Fase de Análisis
l
Elly
A rande las etapas del procesamiento de una sentencia SQL. Cuando una aplicación
análisis es-tuna
u
Jemite nunaonsentencia SQL, realiza una llamada de análisis a la base de datos Oracle. Durante la
llamada de análisis, Oracle Database:
• Comprueba si la sentencia tiene validez sintáctica y semántica.
• Determina si el proceso que emite la sentencia tiene privilegios para ejecutarla.
• Busca una coincidencia que se pueda compartir de la sentencia en el pool compartido.
• Asigna a la sentencia un área SQL privada.
Hay dos tipos de operaciones de análisis:
• Análisis ligero: se ejecuta una sentencia SQL y se encuentra una coincidencia en el pool
compartido. La coincidencia puede ser el resultado de una ejecución previa de otro usuario. La
sentencia SQL se comparte, esto es bueno para el rendimiento. Sin embargo, los análisis ligeros
también requieren comprobación de seguridad y sintaxis, que consume los recursos del sistema.
• Análisis pesado: se ejecuta una sentencia SQL la primera vez y no se encuentra ninguna
coincidencia que compartir en el pool compartido. Los análisis pesados son los que más recursos
utilizan y no son escalables, porque realizan todas las operaciones que conlleva un análisis.
Cuando se utilizan las variables ligadas correctamente, puede tener lugar mayor número de análisis
ligeros, al igual que la reducción de análisis pesados y el almacenamiento de las sentencias
analizadas en la caché de biblioteca durante un período mayor.
Pool compartido
SQLAREA
Área Área de
de contexto contexto de
de cursor cursor
para la para la s a
sentencia sentencia ) h a
SELECT 2 o m
ilฺc ideฺ
SELECT 1
a
@ gm t Gu
Sentencia Sentencia a i ng uden Sentencia
SELECT 2 ( j as i1s St
SELECT SELECT 1
n
gó se t h
r
A to ua
e z
h nse
n c e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
S
Copyright
ra able
n d
Almacenamiento
l e er
xa desfCursores SQL
A n
a utiliza la caché de biblioteca y sqlarea para almacenar sentencias SQL y
servidor detrOracle
Elly
Jubloques n -
no la sentencia
PL/SQL.
• Reduce
Cuando una sentencia se almacena en la caché, el servidor de Oracle:
al valor numérico del texto ASCII
• Utiliza una función hash de este número
• Coloca el cursor para esta sentencia en una cadena hash
El valor hash no es un valor único y puede que haya varias sentencias con el mismo valor hash. Los
contextos de cursor de estas sentencias se almacenan todos en la misma cadena hash. Se busca la
cadena hash de la sentencia correcta. Cada vez que se emite una sentencia, se busca en la caché. Si
no se encuentra el manejador de cursor, el cursor se genera a partir de la sentencia. Cuando la
sentencia se ejecuta posteriormente, se encuentra el manejador de cursor y se vuelve a utilizar el
cursor.
Si la sentencia ya se ha analizado y ejecutado, y el manejador de cursor aún está en la caché del
cliente, el cursor se puede llamar y ejecutar sin buscar la sentencia en el pool compartido. La
estadística de recuento de análisis sigue aumentando cada vez que se realiza una solicitud de análisis,
pero la sobrecarga que supone buscar la sentencia en la caché de la sesión es mucho menor.
Éste es el comportamiento básico y se puede modificar mediante el parámetro CURSOR_SHARING y
la función de uso compartido del cursor adaptativo descrita en la lección titulada "Ajuste del Pool
Compartido".
Nota: normalmente, se realiza un análisis pesado de la sentencia SQL la primera vez que se emite y
un análisis ligero para cada sesión adicional que utilice la sentencia. Esto depende de que haya
suficiente memoria tanto en la caché de la sesión como en el pool compartido para retener la
información del cursor.
Oracle Database 11g: Ajuste de Rendimiento 9-5
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Cursores cerrados 2
Cadenas hash
s a
)h a
4 o m
Procedimiento de análisis: a ilฺc ideฺ
1. Encuentre y ejecute un cursor abierto. @ gm t Gu
2. Encuentre un cursor cerrado en la cachéade i nlag sesión.
d e n
3. Busque las cadenas hash (análisis ( j as is Stu
ligero).
g ó n th
4. Construya el cursor (análisis a pesado). e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e xa del sCursor
Uso y Análisis
l f er
•lyCada
- t an desea que su código se ejecute lo más rápido posible. Para los códigos con
A desarrollador
r
u
non SQL, el acceso del cursor debe ser rápido. El acceso más rápido posible del cursor es
J sentencias
a través de la caché del cursor abierto en la memoria de sesión de la sesión del servidor. Cada
cursor abierto en la caché de cursor abierto tiene un puntero a la ubicación de la memoria SGA
de ese manejador de cursor. Para ejecutar el cursor, se utiliza el puntero; no es necesario realizar
un análisis. Ya se ha analizado un cursor abierto y el manejador de cursor está en la caché de
biblioteca.
• Cuando un cursor está cerrado, la información del cursor se mueve a la caché de cursor cerrado
de la sesión, si el parámetro SESSION_CACHED_CURSORS se ha definido en un valor
cualquiera. (El valor por defecto es 0 para las versiones anteriores a 10.2.0.2, con la que cambió
a 50).
• Cuando un cursor está abierto, la sesión comprueba aleatoriamente la sentencia SQL y realiza
una consulta hash en la caché del cursor cerrado. Si se encuentra el cursor, se mueve a la caché
del cursor abierto y, a continuación, se utiliza el puntero del manejador de cursor del pool
compartido para ejecutar el cursor. No se necesita ningún análisis.
• Si no se encuentra el cursor en la sesión, se utiliza el valor hash para buscar las cadenas hash en
el pool compartido del manejador de cursor. La búsqueda se registra como un análisis. Si se
encuentra el manejador de cursor y el resto del cursor no se ha quedado obsoleto, se ejecutará el
cursor. Esto es un análisis ligero.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
• Fase de enlace:
– Comprueba si la sentencia cuenta con variables ligadas
– Asigna o reasigna un valor a la variable ligada
• Las variables ligadas afectan al rendimiento si:
– Se reduce el análisis mediante el cursor compartido.
– Un plan de ejecución diferente podría mejorar el
rendimiento con diferentes valores ligados. s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Fases dele xa sfer de Sentencias SQL: Enlazar
Procesamiento
l y A lanfase
Durante
u - t radenenlace:
J • Oracle
no Database comprueba si la sentencia cuenta con referencias de variables ligadas.
• Oracle Database asigna o reasigna un valor a cada variable.
Si se utilizan variables ligadas en una sentencia, el optimizador asume que se pretende el uso
compartido del cursor y que diferentes llamadas deben utilizar el mismo plan de ejecución. Esto
ayuda al rendimiento con la reducción de los análisis pesados.
Cuando existe un histograma, el optimizador asume que la distribución de datos no coincide con las
suposiciones por defecto del optimizador. Por lo tanto, varias llamadas del cursor con diferentes
variables ligadas se podrían beneficiar significativamente de diferentes planes de ejecución. En este
caso, el uso compartido del cursor adaptativo creará nuevos planes. Si no se intentan nuevos planes,
el rendimiento se puede reducir para determinados valores de variables ligadas.
El uso compartido del cursor se ve afectado por los parámetros de inicialización de la base de datos y
la función de uso compartido del cursor adaptativo de Oracle Database 11g. Para obtener más
información, consulte la lección Ajuste del Pool Compartido.
Si la variable ligada no coincide con el tipo de la columna, se realizará una conversión implícita que
puede impedir al optimizador seleccionar índices de acceso rápido. Utilice la vista
DBA_HIST_SQLBIND para buscar los tipos reales utilizados.
• Fase de ejecución:
– Ejecuta la sentencia SQL
– Realiza E/S necesarias y ordena las sentencias del
lenguaje de manipulación de datos (DML)
• Fase de recuperación:
– Recupera filas para una consulta
– Ordena las consultas cuando es necesario s a
)h a
– Usa un mecanismo de recuperación de matriz m
o
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e xa sfer
Fase de Ejecución
l
Elly
A tran consiste en una serie de pasos que utiliza el proceso del servidor para acceder e
u -
plan de ejecución
nonlas filas de datos necesarias de los buffers de datos. Varios usuarios pueden compartir el
Jidentificar
mismo plan de ejecución. Oracle Database realiza lecturas físicas o lecturas y escrituras lógicas para
sentencias DML y también ordena los datos cuando sea necesario.
Nota: las lecturas físicas son lecturas de disco. Las lecturas lógicas son bloques que ya están en
memoria en la caché de buffers de la base de datos. Las lecturas físicas utilizan más recursos y
tiempo porque necesitan E/S del disco.
Fase de Recuperación
Oracle Database recupera filas para una sentencia SELECT durante la fase de recuperación. Cada
recuperación rescata varias filas mediante una recuperación de matriz. Las recuperaciones de matriz
pueden mejorar el rendimiento gracias a la reducción de los recorridos de ida y vuelta en la red. Cada
herramienta de Oracle ofrece sus propias formas de influir en el tamaño de la matriz. Por ejemplo, en
SQL*Plus, puede cambiar el tamaño de recuperación mediante el valor ARRAYSIZE:
SQL> show arraysize
arraysize 15
SQL> set arraysize 50
SQL*Plus procesa 15 filas cada vez por defecto. Las matrices con tamaños muy altos no
proporcionan prácticamente ninguna ventaja.
inmediatamente estos buffers en el disco. Cuando se confirma una transacción, los registros de
cambios de redo de los cambios realizados en los bloques se registran inmediatamente en los
archivos redo log mediante el proceso de escritura de logs y finalmente DBWR los escribe en el
disco como determina el algoritmo de punto de control incremental, o según sea necesario debido a
las necesidades de espacio en la caché de buffers de la base de datos.
Nota: los registros de cambio de redo para un bloque sucio se deben escribir en el archivo redo log
antes de que DBWR pueda escribir el bloque sucio en el disco.
El procesamiento de los comandos UPDATE, DELETE o INSERT utilizan pasos similares. La
s
imagen anterior de DELETE contiene los valores de la columna en la fila suprimida y la imagen a
) h a
anterior de INSERT sólo contiene la información de ubicación de la fila.
o m
ilฺc ideฺ
Hasta que la transacción se confirma, los cambios realizados en los bloques sólo se registran en las
a
@ gm t Gu
estructuras de la memoria y no se escriben en el disco de forma inmediata. Los procesos de instancia
se producen a continuación de un algoritmo lento de escritura que mejora el rendimiento general.
i ng uden
Después de confirmar una transacción, ésta es permanente. El mensaje “committed” no se emite
a
( j as is St
hasta que el proceso de LWGR ha registrado la información de redo en el disco garantizando una
ó n th
completa recuperabilidad. El proceso de DBWR escribe los bloques de datos en el disco según el
g
a e
Ar to us
algoritmo de punto de comprobación. Un fallo de la computadora que cause la pérdida de SGA antes
z
n c he nse
de que se confirme una transacción también puede causar la pérdida de estos cambios. La regla es
a lice
que ninguna transacción es permanente hasta que se confirma.
S
n d ra able
Para obtener más información sobre el procesamiento de la caché de buffers de la base de datos,
l e xa sfer
consulte la lección Ajuste de la Caché de Buffers.
u l y A n-tran
J no
Procesamiento COMMIT
Instancia
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Archivos Buffer de
Proceso redo log
de datos de servidor
Pool compartido
s a
Archivos de ) h a
control o m
a ilฺc ideฺ
@ gm t Gu
Proceso de
i n g den
usuario a
as is Stu
Archivos
n ( j
redo log
a g ó e th LGWR
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e
COMMIT Rápido
l xa sfer
y ADatabaset r n un mecanismo de confirmación rápido que garantiza que los cambios
autiliza
l
Oracle
u -
non se pueden recuperar en caso de fallo de la instancia.
Jconfirmados
Número de Cambio del Sistema
Siempre que se confirme una transacción, Oracle Database asigna un número de cambio del sistema
único (SCN) a la transacción. Oracle Database lo utiliza como registro de hora interno para
sincronizar los datos y proporcionar consistencia de lectura cuando se recuperan datos de los
archivos de datos. El SCN permite a la instancia realizar comprobaciones de consistencia sin
depender de la fecha y la hora del sistema operativo.
Al ejecutar COMMIT, se realizan los siguientes pasos:
• El proceso de servidor coloca un registro de confirmación, junto con el SCN, en el buffer de
redo log.
• El proceso de escritura de logs (LGWR) en segundo plano realiza una escritura contigua de hasta
todas las entradas de buffers de redo log e incluye el registro de confirmación en los archivos
redo log. Esto garantiza que los cambios no se pierdan incluso si se produce un fallo de la
instancia.
• El proceso del servidor envía un mensaje de terminación de la transacción al proceso de usuario.
DBWR vuelve a escribir los cambios de bloque de datos reales en el disco basándose en su propio
mecanismo de temporización interno y en la configuración de punto de control incremental.
• Transformación de sentencias: para sentencias complejas que incluyen, por ejemplo, vistas o
subconsultas correlacionadas, el optimizador puede transformar la sentencia original en una
sentencia de unión equivalente.
• Selección de los enfoques del optimizador: el optimizador determina el objetivo de la
optimización.
• Selección de rutas de acceso: para cada tabla a la que accede la sentencia, el optimizador
selecciona una o más rutas de acceso disponibles para obtener los datos de tabla. El optimizador
omitirá determinadas rutas de acceso si no hay ninguna estadística disponible como el uso de
índices de bitmap.
s a
) h a
• Selección de órdenes de unión: para una sentencia de unión que une más de dos tablas, el
m
optimizador selecciona el par de tablas que se unen primero, a continuación, la tabla que se une
o
al resultado, etc.
a ilฺc ideฺ
gm t Gu
• Selección de métodos de unión: para las sentencias de unión, el optimizador selecciona la
@
a i ng uden
operación que se va a utilizar para realizar la unión.
( j as is St
Nota: puede que el optimizador no tome las mismas decisiones de una versión de Oracle Database a
g ó n
la siguiente. En versiones recientes, el optimizador puede tomar decisiones diferentes debido a que
th
hay más información disponible. a e
z Ar to us
El optimizador funciona de dos maneras, el primer y habitual modo es el optimizador de tiempo de
c he nse
ejecución que crea el plan de ejecución en tiempo de ejecución. En este modo, el optimizador tiene
n
S a lice
limitaciones de tiempo y sólo se puede tener en cuenta un número limitado de alternativas. El
d ra able
segundo modo se denomina optimizador automático de ajustes (ATO). En este modo, se asigna al
n
l e xa sfer
optimizador mucho más tiempo para tener en cuenta más opciones y recopilar estadísticas. El ATO
u l y A n-tran
puede generar un plan más adecuado y crear un perfil SQL que influirá en el optimizador para
J no
seleccionar el mejor plan cuando se emita una sentencia SQL en el futuro.
Prueba
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
SQL Ordered by Gets )h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
a sfer
dexSQL Principal
Informesle
•lyLa
- an
Amayortrrecuperación de la inversión en el terreno del ajuste es el ajuste SQL. Los informes de
u
J SQL n
noprincipal son muy útiles para la identificación de las sentencias que consumen la mayor
cantidad de recursos del sistema. Los estudios demuestran que normalmente el 20% de las
sentencias SQL consumen el 80% de los recursos y el 10% de las sentencias consumen el 50%
de los recursos. Esto significa que con la identificación y el ajuste de las sentencias de SQL
principal, puede mejorar el rendimiento de todo el sistema.
• La búsqueda de las sentencias SQL con mayor consumo de recursos se simplifica gracias al uso
de los informes de SQL principal. Tanto los informes de AWR como los de Statspack incluyen
un juego de listas de SQL principal. Cada informe muestra las sentencias de SQL principal
almacenadas por uso de recursos en diferentes categorías. Las categorías son: Elapsed Time,
CPU Time, Gets, Reads, Executions, Parse Calls, Sharable Memory y Version Count. Los
informes individuales no incluyen el texto SQL completo, sino que se muestra un informe de
todo el texto SQL por SQL_ID a continuación de los informes individuales.
• No todas las sentencias SQL se incluyen en estos informes por defecto. El número de sentencias
incluidas se controla mediante el valor del parámetro topnsql para AWR y los valores de
nivel y umbral de Statspack. Para obtener más información sobre los parámetros de Statspack,
consulte el apéndice Uso de Statspack.
Supervisión de SQL
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
... ) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e
Supervisión
l xade SQLsfer
Enly
A tran 11g Versión 2, puede acceder a la función SQL Monitoring de Enterprise
u
JManager n- Control si hace clic en el separador Performance. Puede realizar su selección
Oracle Database
noDatabase
entre los valores de Real Time e Historical. Desplácese hasta el área Additional Monitoring Links y
haga clic en SQL Monitoring, como se muestra en la diapositiva.
Nota: el parámetro de inicialización COMPATIBLE se debe definir en 11.2.0.0 (o superior) para
utilizar esta función.
Estado: Error
ID de sesión, donde
Tiempo Lecturas
Inicio (y
s a
de Ejecución
se ejecuta el SQL
de CPU de disco
finalización) de la
ejecución )h a
m
lฺco dSQL
Finalizada
Duración de la
ejecución (tiempo
Grado de paralelismo
a iComando e ฺ en
real) gm t Gejecución
u i
@
ng uden
a i
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Ejecuciones
l e s er
xaSQL Supervisadas
f
Ally
A transobre los valores o símbolos de cada ejecución de SQL, se muestra una indicación
mover el -cursor
u
nonLa diapositiva muestra el comando SQL real en ejecución con el cursor en el enlace
Jrelevante.
SQL ID.
Al hacer clic en el enlace que muestra el ID de SQL, se accede a la página Monitored SQL Execution
Details, como se muestra en la siguiente diapositiva.
2
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
3
a i ng uden
( j as is St
g ó n th4
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e xa sfeder SQL
Lista de Supervisión
l
A tramuestra
y diapositiva n otro ejemplo de las ejecuciones de SQL supervisadas:
u l
Esta -
J 1. Ennola nsección superior izquierda, puede ver para cada SQL de larga duración, el estado de
terminación (que puede ser: en ejecución, terminado o error), la duración de ejecución (tiempo
real), el ID de SQL y el ID de sesión en la que se ha ejecutado el SQL.
2. Aquí puede ver el tiempo de base de datos por clase de espera y las operaciones de lectura y
escritura de E/S.
3. Este detalle muestra el grado de paralelismo: el número de instancias implicadas en esta
ejecución paralela.
4. Y aquí se puede ver que la ejecución del comando SQL ha terminado.
En ejecución actualmente
Atributos de
ejecución básica Obtenciones en buffer
4,5 minutos, Poco de lectura/escritura
s a
principalmente tiempo
de CPU (verde)
tiempo de
E/S (azul) h
Desglose de evento de espera
) a
o m
a i lฺc deฺ
Datos de ASH en la
g m Gui
línea de tiempo
i n g@ dent
a s a tu
( j S
g ó n
e t his
La operación de unión actual
A raha producido
us 18.000 filas hasta ahora
z t o
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
a sfede
xEjecución r SQL Supervisada
e
Detalles lde
A detrlaanejecución de SQL se muestran en tres páginas con separadores diferentes:
l
Los
u ydetalles
n-
J • Plan
noStatistics, mostrada en la parte inferior de la diapositiva
• Parallel, que muestra la distribución del trabajo entre los servidores paralelos (no forma parte del
ejemplo de la diapositiva)
• Activity, que muestra los datos de ASH en una línea de tiempo
Al hacer clic en el enlace Session, se accede a la página Session Details.
Al hacer clic en el enlace SQL ID, se accede a la página SQL Details.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e
Visualización
l s er de Supervisión de SQL
xadel Informe
f
Elly
informe de- an
A tsupervisión
r de SQL muestra la misma información que las diapositivas anteriores;
u
Jpero esta
o n
n vez de forma textual, en lugar de gráfica. Comienza con el texto SQL, seguido de
información global y, a continuación, los detalles de supervisión del plan SQL, que indica también la
operación actual con una flecha.
Cuando aparezcan los nuevos botones Save y Mail, podrá guardar el informe en formato HTML y
enviar por correo electrónico el informe activo, por ejemplo, a un experto de ajuste SQL, si la
organización tiene esta división de trabajo.
Prueba
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
SORT
)h a
o m
HJ a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St HJ
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e
¿Qué es lunxPlan er
a desfEjecución?
l
Cuando
u - ranuna sentencia, el servidor ejecuta los pasos del plan creado por el optimizador.
y Asenejecuta
t
JCada paso
no recupera físicamente filas de datos de la base de datos o las prepara de alguna forma para
la emisión de la sentencia por parte del usuario. La combinación de los pasos que se utilizan para
ejecutar una sentencia se denomina “plan de ejecución”.
Un plan de ejecución incluye un método de acceso para cada tabla a la que accede la sentencia y un
orden de las tablas (orden de unión). El optimizador también utiliza diferentes métodos para
combinar las filas de varias tablas (método de unión). Los pasos del plan de ejecución no se realizan
en el orden en el que están numerados.
El plan de ejecución permite consultar los métodos que puede seleccionar el optimizador. En
ocasiones, el plan de ejecución ilustra claramente por qué es ineficaz una sentencia; por ejemplo,
cuando se elige una exploración de tabla completa (FTS), que implica muchas E/S, en lugar de una
consulta de índice. En este caso, la pregunta es ¿por qué ha elegido el optimizador la FTS? La
lección Influencia en el Optimizador examina esta pregunta con más detalle.
ejecutar una sentencia SQL sin ejecutar la sentencia. El plan de ejecución generado por el comando
EXPLAIN PLAN puede no ser el mismo que el generado por el optimizador de tiempo de
ejecución.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
s a
SORT ) h a
SORT
o m
a ilฺc ideฺ
HJ
@ gmHJ t Gu
a i ng uden
( j a s S t
NL
g ó n
e t his HJ
A ra us
h e z e to
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
Usos de Planes
l e er
xa desEjecución
f
Laly A traden planes de ejecución se utiliza para:
visualización
u n- el plan de ejecución actual
J • Determinar
n o
• Identificar el efecto de crear un índice en una tabla
• Buscar cursores que contengan una ruta de acceso determinada (por ejemplo, exploración de
tabla completa o de rango de índices)
• Identificar los índices que selecciona el optimizador
• Determinar si el optimizador que selecciona un plan de ejecución concreto (por ejemplo, unión
de bucles anidados) que espera el desarrollador
La comparación de costos y la medida de los tiempos de ejecución reales, así como el uso de
recursos de un SQL que ejecuta varios planes, son métodos que ayudan a decidir qué plan de
ejecución es más adecuado para dicho SQL, pero la comparación de planes de ejecución no es
suficiente para determinar el plan de costo más bajo.
Los planes de ejecución pueden mostrar cómo influyen en el optimizador elementos como: índices,
estadísticas sobre los objetos de base de datos, cambios en los valores de los parámetros de
inicialización y la migración de la aplicación o de la base de datos a una nueva versión. Pero estos
elementos tienen una naturaleza global. Pueden afectar a todo el sistema. SQL Access Advisor o
SQL Performance Analyzer son herramientas más adecuadas para analizar el impacto de dichos
cambios.
Por defecto, los planes de ejecución no se mantienen una vez que el SQL queda obsoleto en el pool
compartido. Si los planes utilizados anteriormente se mantienen en tablas definidas por el usuario, o
se cargan como planes de línea base, se podrá identificar la forma en la que los cambios realizados en
el rendimiento de una sentencia SQL se pueden correlacionar con los cambios en el plan de
ejecución para dicha sentencia.
Oracle Database 11g: Ajuste de Rendimiento 9-27
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
( j as is St
Tanto la función DISPLAY_CURSOR como DISPLAY_AWR aceptan SQL_ID como argumento
n th
(como se muestra posteriormente en los ejemplos de esta lección). El valor de SQL_ID de una
g ó
a e
Ar to us
sentencia se puede obtener consultando V$SQL o DBA_HIST_SQLTEXT.
z
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
SORT s a
)h a
m
HJ a i lฺco deฺ
EXPLAIN PLAN
g m Gui
i n g@ dent
HJ
a s a tu
( j S
is del plan
g ó n t hTabla
ra us e
A
z e to
h e
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
Comando l e xa sPLAN
EXPLAIN f er
Elly
A tran PLAN se utiliza para generar el plan de ejecución que utiliza el optimizador
comando -EXPLAIN
u
non una sentencia SQL. No ejecuta la sentencia, sino que simplemente produce el plan que
Jpara ejecutar
se puede utilizar y lo inserta en una tabla. Si examina el plan, podrá ver cómo el servidor de Oracle
ejecuta la sentencia.
Para utilizar EXPLAIN PLAN, debe:
• En primer lugar, utilizar el comando EXPLAIN PLAN para explicar una sentencia SQL
• Recuperar los pasos del plan con los métodos del paquete DBMS_XPLAN
PLAN_TABLEse crea de forma automática como una tabla temporal global para contener la salida de
una sentencia EXPLAIN PLAN para todos los usuarios. PLAN_TABLE es la tabla de salida de
ejemplo por defecto en la que la sentencia EXPLAIN PLAN inserta las filas que describen los planes
de ejecución.
Nota: EXPLAIN PLAN puede generar un plan diferente del plan real utilizado por el optimizador,
por muchos motivos:
• El comando EXPLAIN PLAN no tiene acceso a las variables ligadas.
• La sesión de SQL*Plus puede tener un entorno diferente debido a los disparadores de conexión
o a los valores de los parámetros de la sesión.
V$SQLPLAN contendrá el plan real utilizado.
= 'text'
FOR statement
EXPLAIN PLAN
SET STATEMENT_ID = 'demo01' FOR
s a
SELECT e.last_name, d.department_name h a
FROM hr.employees e, hr.departments d lฺco
m)
a i d e ฺ
gm t Gu
WHERE e.department_id = d.department_id; i
Explained. ng @ en
s a i tud
Nota: el comando EXPLAINnPLAN (ja hnois ejecutaS
realmente la sentencia. r a gó se t
z A to u
c e
h nse
n e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
S
Copyright
ra able
n d
Comando l e xa sPLAN:
EXPLAIN f er Ejemplo
l
Este - an el plan de ejecución de la sentencia SQL en la tabla del plan y agrega la
A trinserta
y comando
u
Jetiquetanodennombre demo01 para futuras referencias. La etiqueta es opcional. También puede
utilizar la siguiente sintaxis:
EXPLAIN PLAN
FOR
SELECT e.last_name, d.department_name
FROM hr.employees e, hr.departments d
WHERE e.department_id =d.department_id;
-------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU|
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 106 | 2862 | 6 (17|
| 1 | MERGE JOIN | | 106 | 2862 | 6 (17|
| 2 | TABLE ACCESS BY INDEX ROWID| DEPARTMENTS | 27 | 432 | 2 (0|
s a
| 3 |
|* 4 |
INDEX FULL SCAN
SORT JOIN
| DEPT_ID_PK |
| |
27 |
107 | 1177 |
| 1 (0|
4 (25|
) h a
| 5 | TABLE ACCESS FULL | EMPLOYEES | 107 | 1177 | 3 (0|
o m
--------------------------------------------------------------------------------
a i lฺc deฺ
Predicate Information (identified by operation id):
g m Gui
---------------------------------------------------
n g @ ent
4 - access("E"."DEPARTMENT_ID"="D"."DEPARTMENT_ID")
s a i t ud
j a
( his
filter("E"."DEPARTMENT_ID"="D"."DEPARTMENT_ID")
S
18 rows selected. ó n
g se t
r
A to ua
e z
h nse
n c e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
S
Copyright
ra able
n d
Comando l e xa sPLAN:
EXPLAIN f er Salida
Laly
A tran del paquete DBMS_XPLAN se puede utilizar para formatear y mostrar la
on- almacenada en una tabla del plan.
función DISPLAY
u
Júltimansentencia
La diapositiva muestra el resultado del uso del paquete DBMS_XPLAN como se muestra en la página
anterior para recuperar la información de la tabla PLANen este ejemplo.
También puede utilizar la sintaxis que se muestra a continuación para recuperarla de la tabla PLAN.
SELECT plan_table_output FROM
TABLE(dbms_xplan.display('plan_table','demo01','serial'));
La salida es la misma que la que se muestra en la diapositiva. En este ejemplo, puede sustituir el
nombre de otra tabla del plan en lugar de PLAN_TABLE y 'demo01' representa el ID de sentencia.
Puede ejecutar el script utlxpls.sql (ubicado en el directorio
ORACLE_HOME/rdbms/admin/) para mostrar EXPLAIN PLAN de la última sentencia
explicada. Este script utiliza la función de tabla DISPLAY desde el paquete DBMS_XPLAN.
0 SELECT STATEMENT
1 MERGE JOIN
s a
)h a
TABLE ACCESS BY
m
INDEX ROWID 2 4 SORT JOIN
a i lฺco deฺ
of DEPARTMENTS
g m Gui
i n g@ dent
a s a tuFULL TABLE SCAN
( j S
INDEX FULL SCAN
DEPT_ID_PK 3
g ó n
e t h5is of EMPLOYEES
A ra us
h e z e to
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
Lectura de xunaPlansde f r
eEjecución
l e
y A del plan
A lpartir
- t r aden ejecución, se puede crear un árbol de ejecución (o árbol de análisis), para
u n la forma en la que se procesa una sentencia. Para crear el árbol, empiece por el paso 1.
Jconocernomejor
A continuación, busque todos los pasos con el principal del paso 1 y agréguelos como secundarios o
ramas bajo el paso 1. Repita este procedimiento para todos los pasos, buscando los secundarios de
dicho paso hasta que se justifiquen todos los pasos. Para cada paso del plan de ejecución, Oracle
Database asigna un número que representa la columna de ID de PLAN_TABLE. Cada paso se
representa por un “nodo”. El resultado de la operación de cada nodo se transfiere al nodo principal,
que lo utiliza como entrada.
La secuencia de pasos se determina por las relaciones principal-secundario de los pasos. Cada paso
del plan de ejecución recupera filas de la base de datos o las acepta como entrada de uno o más pasos
distintos, también conocidos como “orígenes de fila”. El paso secundario se realiza al menos una vez
y da lugar al principal. Cuando un principal tiene varios secundarios, cada secundario se ejecuta de
forma secuencial en el orden de la posición de los pasos. Si los pasos secundarios inferiores se
organizan de izquierda a derecha, el plan se puede leer de izquierda a derecha y de abajo hacia arriba.
En el diagrama, los números corresponden a los valores de ID de la tabla PLAN (consulte la
diapositiva anterior). El optimizador recupera las filas de la tabla DEPARTMENTS con una
exploración de índice realizando una FULL INDEX SCAN en la columna de clave primaria. El
optimizador realiza una operación FULL TABLE SCAN y SORT en la tabla EMPLOYEES. Estos
dos juegos de resultados realizan la operación MERGED para obtener el resultado final de la consulta.
Nota: el paso 3 es una exploración completa del índice de clave primaria de la tabla
DEPARTMENTS, la operación recupera las entradas de índice y, a continuación, obtiene las filas de la
tabla en orden. Una exploración completa rápida de índice no devuelve las entradas de índice en
orden, por lo que será necesario realizar también una operación de ordenación.
Oracle Database 11g: Ajuste de Rendimiento 9-33
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Columnas de V$SQL_PLAN
caché de biblioteca
ADDRESS Dirección del manejador del principal de este cursor
CHILD_NUMBER Número del cursor secundario que utiliza este
plan de ejecución
POSITION Orden de procesamiento de las operaciones con el
mismo PARENT_ID s a
)h a
PARENT_ID ID del siguiente paso de ejecución que opera enola m
salida del paso actual
a ilฺc ideฺ
ID Número asignado a cada paso del@ gmde ejecución
plan t G u
a i ng uden
( j as is St
g ó n th
Nota: ésta es sólo unaAlista r a parcial
u s e de las columnas.
ez se t o
c h
S
Copyright eny/o sus filiales. Todos los derechos reservados.
an© 2010,licOracle
n d ra able
Columnaslede xaV$SQL_PLAN
s f er
l
Casiy todas - an de la vista V$SQL_PLAN se muestran en las columnas de PLAN_TABLE.
A lastcolumnas
r
u
non que tienen el mismo nombre tienen el mismo significado en ambas vistas.
JLas columnas
Las columnas ADDRESS y HASH_VALUE se pueden utilizar para la unión mediante V$SQLAREA
para agregar la información específica del cursor.
Las columnas ADDRESS, HASH_VALUE y CHILD_NUMBER se pueden utilizar para la unión
mediante V$SQL para agregar la información específica del cursor secundario.
Consulta de V$SQL_PLAN
SELECT PLAN_TABLE_OUTPUT FROM
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
TABLE(DBMS_XPLAN.DISPLAY_CURSOR('cfz0cdukrfdnu'));
Vista V$SQL_PLAN_STATISTICS
ejecución real.
• V$SQL_PLAN_STATISTICS_ALL permite
comparaciones de las estimaciones del optimizador.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e xa sfer
Vista V$SQL_PLAN_STATISTICS
l
Laly
A tran
u
Joperación
o n -
vista V$SQL_PLAN_STATISTICS proporciona las estadísticas de ejecución real para cada
n del plan, como el número de filas de salida y el tiempo transcurrido. Todas las estadísticas,
excepto el número de filas de salida, son acumulativas. Por ejemplo, las estadísticas de una operación
de unión incluyen también las estadísticas de las dos entradas. Las estadísticas de
V$SQL_PLAN_STATISTICS están disponibles para los cursores que se han compilado con el
parámetro de inicialización STATISTICS_LEVEL definido en ALL.
La vista V$SQL_PLAN_STATISTICS_ALL contiene estadísticas de uso de memoria para los
orígenes de fila que utilizan la memoria SQL (unión hash o de ordenación). Esta vista concatena la
información de V$SQL_PLAN con estadísticas de ejecución de V$SQL_PLAN_STATISTICS y
V$SQL_WORKAREA.
Consulta de AWR
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------------
SQL_ID 454rug2yva18w
--------------------
select /* example */ * from hr.employees natural join hr.departments
s a
Plan hash value: 2052257371 ) h a
o m
------------------------------------------------------------------------------
a ilฺc Time
i d e ฺ |
gm t Gu
|Id | Operation | Name | Rows | Bytes |Cost(%CPU)|
------------------------------------------------------------------------------
| 0| SELECT STATEMENT | | | @
g | 66 n(100)| |
11 a | in 968 | de
| 1| HASH JOIN
| 2|
|
TABLE ACCESS FULL| DEPARTMENTS |
|
( j a
11s | 220St|u 2 (0)| 00:00:01 |
(17)| 00:00:01 |
n d a b l
Consultale
a
dexAWR sfe
r
y Autilizart r n DBMS_XPLAN.DISPLAY_AWR() para mostrar todos los planes
afunción
l
Puede
u - la
non en AWR. En el ejemplo mostrado, se transfiere un SQL_ID como argumento.
Jalmacenados
A continuación, se indican los pasos para realizar este ejemplo:
1. Ejecute la sentencia SQL.
SQL> select /* example */ *
2> from hr.employees natural join hr.departments;
2. Consulte V$SQL_TEXT para obtener el valor de SQL_ID.
SQL> select sql_id, sql_text from v$SQL
2> where sql_text like '%example%';
SQL_ID SQL_TEXT
------------- -------------------------------------------
F8tc4anpz5cdb select sql_id, sql_text from v$SQL …
454rug2yva18w select /* example */ * from …
3. Mediante SQL_ID, verifique que esta sentencia se ha capturado en la vista de diccionario
DBA_HIST_SQLTEXT. Si la consulta no devuelve filas, indica que la sentencia aún no se ha
cargado en AWR.
por lo que puede forzar que se capturen todas las sentencias SQL si cambia el rango topnsql con
el procedimiento MODIFY_SNAPSHOT_SETTING. A continuación, compruebe si se ha capturado
en DBA_HIST_SQLTEXT:
SQL> exec –
2> DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(-
3> topnsql => 'MAXIMUM');
g ó n th
a us e
PL/SQL procedure successfully
z Ar tocompleted.
n c heSQL_TEXT
n se FROM dba_hist_sqltext WHERE SQL_ID ='
Sa e lic
SQL> SELECT SQL_ID, e
SQL_IDnd
a
454rug2yva18w';
r b l
a
SQL_TEXT
xa sfer -------------------------------
l e
--------------
l - t an
y A454rug2yva18w
r select /* example */ * from …
u
J non
4. Utilice la función DBMS_XPLAN.DISPLAY_AWR () para recuperar el plan de ejecución:
SQL>SELECT PLAN_TABLE_OUTPUT FROM TABLE
(DBMS_XPLAN.DISPLAY_AWR('454rug2yva18w’));
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------
SQL_ID 454rug2yva18w
--------------------
select /* example */ * from hr.employees natural join hr.departments
----------------------------------------------------------------------------------
|Id | Operation | Name | Rows | Bytes |Cost(%CPU)| Time |
----------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 7 (100)| |
| 1 | HASH JOIN | | 11 | 968 | 7 (15)| 00:00:01 |
| 2 | TABLE ACCESS FULL| DEPARTMENTS | 11 | 220 | 3 (0)| 00:00:01 |
| 3 | TABLE ACCESS FULL| EMPLOYEES | 107 | 7276 | 3 (0)| 00:00:01 |
----------------------------------------------------------------------------------
SQL*Plus AUTOTRACE
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
OFF
SET AUTOTRACE ON
TRACE[ONLY]
EXPLAIN s a
) h a
STATISTICS o m
a ilฺc ideฺ
@ gm t Gu
SHOW AUTOTRACE a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
xa sfer
SQL*PlusleAUTOTRACE
Enly
SQL*Plus,- an obtener de forma automática el plan de ejecución y algunas estadísticas
A trpuede
u
nonsobre la ejecución de un comando SQL con el valor AUTOTRACE. A diferencia del
Jadicionales
comando EXPLAIN PLAN, la sentencia se ejecuta realmente. Sin embargo, puede optar por
suprimir la ejecución de la sentencia especificando AUTOTRACE TRACEONLY EXPLAIN.
AUTOTRACE es una práctica herramienta de diagnóstico para el ajuste de la sentencia SQL. Debido a
que es puramente declarativa, resulta más fácil de utilizar que EXPLAIN PLAN.
Opciones de Comandos
OFF Desactiva sentencias SQL de autotrace.
ON Activa sentencias SQL de autotrace.
TRACEONLY Activa sentencias SQL de autotrace y suprime la salida de la sentencia.
EXPLAIN Muestra los planes de ejecución pero no muestra las estadísticas.
STATISTICS Muestra las estadísticas pero no muestra los planes de ejecución.
Nota: si se omiten las opciones de los comandos EXPLAIN y STATISTICS, los planes de
ejecución y las estadísticas se mostrarán por defecto.
s a
• Para mostrar sólo los planes de ejecución:
) h a
o m
set autotrace traceonly explain
a ilฺc ideฺ
@ gm t Gu
• Controlar el diseño con los valores deincolumna g den
a
as is Stu
n ( j
a g ó e th
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
xa AUTOTRACE
Uso de SQL*Plus
l e s f er
u l y A nPrevios
Requisitos - t ran
JPara acceder
no a los datos de STATISTICS, debe tener acceso a varias tablas dinámicas de
rendimiento. El DBA puede otorgar acceso con el rol PLUSTRACE creado en el script
plustrce.sql. El DBA debe ejecutar el script como usuario SYS y, de este modo, ningún
usuario con el rol de DBA podrá otorgar el rol PLUSTRACE a los usuarios que deseen utilizar la
opción STATISTICS de AUTOTRACE.
Ejemplos
La diapositiva muestra ejemplos del comando AUTOTRACE.
Control del Diseño del Plan de Ejecución de AUTOTRACE
El plan de ejecución consta de cuatro columnas mostradas en el siguiente orden:
ID_PLUS_EXP Número de línea de cada paso
PARENT_ID_PLUS_EXP Número de línea del paso principal
PLAN_PLUS_EXP Paso del informe
OBJECT_NODE_PLUS_EXP Enlaces de base de datos o servidores de consultas en paralelo
utilizados
Puede cambiar el formato de estas columnas o suprimirlas, con el comando SQL*Plus COLUMN. Para
obtener más información, consulte Oracle SQL*Plus User’s Guide and Reference.(Guía del Usuario
y Referencia de Oracle SQL*Plus).
SELECT *
FROM products;
Statistics
-----------------------------------------------------
1 recursive calls
s a
0 db block gets
) h a
9 consistent gets
o m
3 physical reads
0 redo size a ilฺc ideฺ
15028 bytes sent via SQL*Net to client
@ gm t Gu
556 bytes received via SQL*Net from client
a i ng uden
6 SQL*Net roundtrips to/from client
0 sorts (memory) ( j as is St
0 sorts (disk)
g ó n th
a e
72 rows processed
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
xa sferEstadísticas
SQL*PlusleAUTOTRACE:
l
AUTOTRACE
u ran varias estadísticas, aunque no todas son relevantes para tratarlas en este
y A n-tmuestra
Jmomento.
no Las estadísticas más importantes son las siguientes:
db block gets Número de E/S lógicas para obtenciones actuales
consistent gets Lecturas de bloques de la caché de buffers
physical reads Número de bloques leídos en el disco
redo size Cantidad de datos redo generados (para sentencias DML)
sorts (memory) Número de ordenaciones realizadas en memoria
sorts (disk) Número de ordenaciones realizadas con el almacenamiento temporal en
disco
Nota: DB block gets son lecturas de los bloques actuales en la caché de buffers. consistent gets son
lecturas de los bloques de la caché de buffers que tienen datos de deshacer. physical reads son
lecturas de bloques en el disco. db block gets, consistent gets y physical reads son las tres estadísticas
que se suelen controlar. Deben ser bajas si se comparan con el número de filas recuperadas. Las
ordenaciones se deben realizar en memoria en lugar de en el disco.
s a
Archivo ) h a
Proceso de servidor m
de rastreo o
a ilฺc ideฺ
@ gm t Gu
TKPROF
a i ng udedenArchivo
( j as is St informe
Base de Datos g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Utilidad SQL
l e xaTracesfer
y A Standard
Silutiliza - t r anEdition o no tiene Diagnostics Pack, la utilidad SQL Trace y TKPROF permiten
u
Jrecopilar n estadísticas para que los planes de ejecución SQL comparen el rendimiento. Una buena
nolas
forma de comparar dos planes de ejecución es ejecutar las sentencias y comparar las estadísticas para
ver cuál se ejecuta mejor. SQL Trace escribe la salida de las estadísticas de la sesión en un archivo y
el usuario utiliza TKPROF para formatearla. Puede utilizar estas herramientas junto con EXPLAIN
PLAN para obtener los mejores resultados.
La utilidad SQL Trace:
• Se puede activar para una sesión o para una instancia.
• Informa sobre el volumen y las estadísticas de tiempo para las fases de análisis, ejecución y
recuperación.
• Genera una salida que TKPROF puede formatear.
Cuando se activa la utilidad SQL Trace para una sesión, Oracle Database genera un archivo de
rastreo que contiene estadísticas de la sesión para sentencias SQL rastreadas para esa sesión. Cuando
se activa la utilidad SQL Trace para una instancia, Oracle Database crea archivos de rastreo para
todas las sesiones.
Nota: SQL Trace implica alguna sobrecarga, por lo que normalmente no resulta conveniente activar
SQL Trace a nivel de instancia.
Parámetros de Inicialización
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
STATISTICS_LEVEL = {BASIC|TYPICAL|ALL}
TIMED_STATISTICS = {false|true}
MAX_DUMP_FILE_SIZE = {n|unlimited}
DIAGNOSTIC_DEST={directory_path|$ORACLE_BASE/diag}
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Parámetros
l e xde s f er
a Inicialización
l y Avarios
Existen - t r an
parámetros de inicialización relacionados con SQL Trace.
u n
JSTATISTICS_LEVEL
o
n
El parámetro de inicialización STATISTICS_LEVEL proporcionado por Oracle controla todas las
recopilaciones de estadísticas principales o los asesores de la base de datos. Este parámetro define el
nivel de recopilación de estadísticas de la base de datos. En función de la definición de
STATISTICS_LEVEL, se recopilan algunos asesores o estadísticas:
• BASIC: No se recopilan asesores ni estadísticas. El control y muchas funciones automáticas se
desactivan. Oracle no recomienda esta definición porque desactiva funciones importantes de
Oracle.
• TYPICAL: Éste es el valor por defecto y asegura la recopilación de las principales estadísticas
mientras proporciona el mejor rendimiento global de la base de datos. Esta definición debe ser
adecuada para la mayoría de los entornos. TYPICAL hace que se active
TIMED_STATISTICS.
• ALL: se incluyen todos los asesores o estadísticas recopilados con el valor TYPICAL, además
de estadísticas de tiempo del sistema operativo y estadísticas de ejecución del origen de fila.
Esta vista muestra el estado de las estadísticas o de los asesores que controla
STATISTICS_LEVEL.
LEVEL define automáticamente este parámetro. Puede definir este parámetro independientemente de
STATISTICS_LEVEL mediante la definición del parámetro TIMED_STATISTICS en el archivo
de parámetros con:
SQL> ALTER SYSTEM SET TIMED_STATISTICS = TRUE
El parámetro también se puede definir de forma dinámica para una sesión concreta mediante el
siguiente comando:
SQL> ALTER SESSION SET timed_statistics=TRUE;
Las estadísticas de temporización tienen una resolución que se mide en microsegundos.
MAX_DUMP_FILE_SIZE s a
) h a
Cuando se activa la utilidad SQL Trace a nivel de instancia, todas las llamadas al servidor producen
m
o
a ilฺc ideฺ
una línea de texto en un archivo con el formato de archivo del sistema operativo. Este parámetro de
inicialización limita el tamaño máximo de este archivo (en bloques del sistema operativo). Es un
parámetro dinámico y de sesión. @ gm t Gu
a i ng uden
Advertencia: el valor por defecto es UNLIMITED, por lo que los archivos de rastreo pueden crecer
hasta llenar el sistema de archivos. ( j as is St
g ó n th
DIAGNOSTIC_DEST es el directorio raíz del Repositorio de Diagnóstico Automático. El valor por
a e
Ar to us
defecto de este directorio se deriva de la variable de entorno ORACLE_BASE; en UNIX es
z
n c he nse
$ORACLE_BASE/diag. El archivo que se genera mientras la utilidad de rastreo está activada se
a lice
colocará en un subdirectorio de este repositorio en
S
n d ra able
../rdbms/<db_name>/<instance_name>/trace.
Obtenciónl e xaInformación
de s f er sobre Valores de Parámetros
y Avisualizar
t r n de parámetros actuales consultando la vista V$PARAMETER:
avalores
u l
Puede -
J nonSQL> SELECT name, value
2 FROM v$parameter
3 WHERE name LIKE '%dest%';
O bien puede utilizar lo siguiente:
SQL> SHOW PARAMETER dest
OS> tkprof
OS> tkprof ora_902.trc run1.txt
OS> tkprof ora_902.trc run2.txt sys=no
s a
sort=execpu print=3 )h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Formateolede xalos Archivos
s f er de Rastreo
l y Ael comando
Utilice - t r anTKPROF para formatear los archivos de rastreo en una salida legible. Ésta es la
u
JsintaxisnodenTKPROF:
OS> tkprof tracefile outputfile [options]
tracefile Nombre del archivo de salida de rastreo (entrada para TKPROF)
outputfile Nombre del archivo donde se almacenarán los resultados formateados
Cuando se introduce el comando TKPROF sin ningún argumento, éste genera un mensaje de sintaxis
junto con una descripción de todas las opciones de TKPROF. Consulte la diapositiva siguiente para
obtener una lista completa. Ésta es la salida que se obtiene al introducir el comando TKPROF sin
ningún argumento:
Usage: tkprof tracefile outputfile [explain= ] [table= ]
[print= ] [insert= ] [sys= ] [sort= ]
Por defecto, al archivo .trc se le asigna un nombre con SPID. SPID se puede encontrar en
V$PROCESS. Una manera sencilla de buscar el archivo es la siguiente:
SQL> ALTER SESSION SET TRACEFILE_IDENTIFIER = 'MY_FILE';
A continuación, el archivo de rastreo de TKPROF incluirá la cadena 'MY_FILE'.
SORT = option
PRINT = n
EXPLAIN = username/password
INSERT = filename
SYS = NO
s a
AGGREGATE = NO
)h a
RECORD = filename o m
TABLE = schema.tablename a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Opciones del a sfeTKPROF
xComando r
l e
Las
l A tque
yopciones - r anse muestran en negrita son las opciones utilizadas con mayor frecuencia:
u
JINSERTnon Crea un script SQL para cargar los resultados de TKPROF en una tabla de la base de
datos.
SORT Orden de las sentencias en el informe (consulte la página anterior para obtener una lista
de valores).
PRINT Produce sólo un informe de este número (ordenado) de sentencias.
(Esta opción resulta especialmente útil en combinación con la opción SORT.)
EXPLAIN Se conecta y ejecuta EXPLAIN PLAN en el esquema especificado.
SYS Desactiva la lista de sentencias SQL recursivas, emitida por el usuario SYS.
AGGREGATE Activa o desactiva el comportamiento (por defecto) de TKPROF, y agrega sentencias SQL
idénticas en un registro.
WAITS Especifica si se registran resúmenes para cualquier evento de espera encontrado en los
archivos de rastreo.
TABLE Especifica la tabla en la que se almacenan temporalmente los planes de ejecución antes de
escribirlos en el archivo de salida. (Este parámetro se ignora si no se especifica
EXPLAIN. Resulta útil si varios individuos utilizan TKPROF para ajustar el mismo
esquema simultáneamente, con el fin de evitar una interferencia destructiva.)
RECORD Crea un script SQL con todas las sentencias SQL no recursivas encontradas en el archivo
de rastreo. (Este script se puede utilizar para reproducir la sesión de ajuste
posteriormente.)
y A n-tran
fchcu
u l Número de buffers para lectura actual durante la recuperación.
J no
fchrow Número de filas recuperadas.
userid Identificador del usuario que analizó el cursor.
a i n
Rows Row Source Operation
---- --------------------------------------------------- ( j a s S tu
1 SORT AGGREGATE (cr=1457 pr=1455
ó n(cr=1457 t
pw=1455 istime=0 us)
hpr=1455
77 TABLE ACCESS FULL CUSTOMERS g
ra us e pw=1455 time=3338
... A
z e to
h e
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
Salida dell e xa sfTKPROF
Comando er
l
Para
A tuna
y ejecutar- r ansentencia SQL emitida por un usuario, el servidor de Oracle debe emitir
u
non sentencias adicionales. Dichas sentencias se denominan sentencias SQL recursivas.
Jocasionalmente
Por ejemplo, si inserta una fila en una tabla que no cuenta con espacio suficiente para albergar dicha
fila, el servidor de Oracle realiza llamadas recursivas para asignar el espacio de forma dinámica. Las
llamadas recursivas también se generan cuando la información del diccionario de datos no está
disponible en la caché del diccionario de datos y se debe recuperar del disco.
Si las llamadas recursivas se producen cuando la utilidad SQL Trace está activada, TKPROF las
marca claramente como sentencias SQL recursivas en el archivo de salida. Puede suprimir la lista de
llamadas recursivas del archivo de salida definiendo el parámetro de línea de comandos SYS=NO.
Tenga en cuenta que las estadísticas de las sentencias SQL recursivas siempre se incluyen en la lista
de la sentencia SQL que provocó la llamada recursiva.
Faltas de Caché de Biblioteca
TKPROF también muestra el número de faltas de la caché de biblioteca que resulta de los pasos de
análisis y de ejecución de cada sentencia SQL. Estas estadísticas aparecen en líneas independientes a
continuación de las estadísticas tabulares.
...
select max(cust_credit_limit)
from customers where cust_city ='Paris'
A ra us
h e z e to
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
Salida dele xa ssin
TKPROF f erÍndice: Ejemplo
n
A trlaadiapositiva
Elly
u -
J(filas)nseoestá recuperando demuestra
ejemplonde que la agregación de resultados a través de varias ejecuciones
la tabla CUSTOMERS. Son necesarios 0,12 segundos del tiempo de
recuperación de CPU. La sentencia se ejecuta a través de una exploración completa de la tabla
CUSTOMERS, como se puede observar en la operación de origen de fila de la salida.
Se debe optimizar la sentencia.
Nota: si los valores de CPU o elapsed son 0, no se definirá timed_statistics.
...
select max(cust_credit_limit)
from customers where cust_city ='Paris'
n d a b l
Generación
l e f er de Optimizador
a un sRastreo
xde
Sely
A tranal optimizador que genere un rastreo de las decisiones sobre costos que realice con
u -
pueden indicar
non En ocasiones, esto se utiliza para proporcionar a los Servicios de Soporte Oracle
Jel comando.
información adicional sobre las acciones del optimizador.
ALTER SESSION SET EVENTS
'10053 trace name context forever, level 1';
La ubicación del rastreo del optimizador en la misma ubicación que los demás archivos de rastreo y
el nombre del archivo de rastreo se pueden modificar con el comando:
ALTER SESSION SET TRACEFILE_IDENTIFIER='opt';
El archivo de rastreo no necesita formato pero es bastante grande, asegúrese de aumentar el tamaño
permitido para el rastreo en la sesión con:
ALTER SESSION SET MAX_DUMPFILE_SIZE=UNLIMITED;
Pare el rastreo en la sesión saliendo de la sesión o del comando:
ALTER SESSION SET EVENTS
'10053 trace name context off';
El archivo de rastreo contiene una gran cantidad de información que no es fácil de leer. Para obtener
más información, consulte el documento 338137.1 de My Oracle Support sobre el caso práctico de
análisis de archivos de rastreo 10053.
Prueba
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Resumen
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates. FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Objetivos
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Consulta analizada
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
(desde el analizador)
Transformador
de consulta Consulta
transformada
Estimador
Estadísticas
Diccionario
s a
)h a
Consulta y m
estimaciones
a i lฺco deฺ
Generador
g m Gui
del plan
i n g@ dent
a s a tu
( j S
ó
Plan de consulta
g n
e t his
(al generador rde
A aorigenudesfila)
h e z e to
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
Funciones l e s er de Consulta
xdela Optimizador
f
an
y A n-tr(denominado
Elloptimizador
Janálisisnodel procesamiento detambién
u “optimizador de consulta”) realiza sus tareas durante la fase de
SQL. La mayoría de estas tareas se realizan sólo durante un análisis
pesado porque la salida del optimizador, el plan de ejecución, se almacena con el cursor en el pool
compartido. Las operaciones del optimizador incluyen:
• Transformación de consultas
• Estimación
• Generación de planes
Esta ilustración muestra la introducción de una consulta en el transformador de consulta. A
continuación, la consulta transformada se envía al estimador. Las estadísticas se recuperan del
diccionario y la consulta y las estimaciones se envían al generador del plan. El generador del plan lo
devuelve al estimador para su comparación con otros planes o envía el plan de consulta al generador
de origen de fila.
El optimizador prueba varias rutas de acceso, órdenes de unión y métodos de unión para buscar el
mejor plan. El optimizador se puede ver influenciado mediante la estructura de sentencias SQL,
estadísticas, estructuras de datos (índices, tipos de tablas) y parámetros. Estas influencias determinan
el orden en el que se prueban las diferentes combinaciones. Puesto que el optimizador de tiempo de
ejecución se ejecuta durante un tiempo limitado, puede que no pruebe todas las combinaciones.
( j as is St
valores por defecto codificados. La calidad de las estadísticas está directamente relacionada con la
g ó n
precisión del costo estimado para el plan.
th
a e
Generación de Planes
z Ar to us
n c he nse
La función principal del generador del plan es la de probar diferentes planes posibles para una
consulta concreta y seleccionar el que tenga el costo más bajo. Hay muchos planes diferentes que son
S a lice
posibles debido a las distintas combinaciones de diferentes rutas de acceso, métodos de unión y
n d ra able
órdenes de unión que se pueden utilizar para acceder a los datos y procesarlos de distintas formas y
e xa sfer
producir los mismos resultados.
l
l y A n-tran
El plan de una consulta se establece generando en primer lugar subplanes para cada subconsulta
u
J no
anidada y vista no fusionada. Cada subconsulta anidada o vista no fusionada se representa por un
bloque de consulta independiente. Los bloques de consultas se optimizan por separado en un orden
ascendente. Es decir, el bloque de consulta interior se optimiza primero y se genera un subplan para
el mismo. El bloque de consulta exterior, que representa toda la consulta, se optimiza el último.
El generador del plan explora varios planes para un bloque de consulta probando diferentes rutas de
acceso, métodos de unión y órdenes de unión. El número de planes posibles para un bloque de
consulta es proporcional al número de elementos de unión en la cláusula FROM. Este número
aumenta de forma factorial con el número de elementos de unión. El generador del plan utiliza un
corte interno para reducir el número de planes que prueba a la hora de buscar el que tiene el costo
más bajo. El corte se basa en el costo del mejor plan actual. Si el mejor costo actual es alto, el
generador del plan lo intentará más detenidamente (es decir, explorará más planes alternativos) para
buscar un plan mejor con un costo más bajo. Si el mejor costo actual es bajo, el generador del plan
terminará la búsqueda rápidamente, porque otra mejora del costo no será significativa. El corte
funciona bien si el generador del plan empieza por un orden de unión inicial que produzca un plan
con un costo cercano a óptimo.
Nota: la diferencia principal entre el optimizador de consulta y el optimizador automático de ajustes
es el tiempo permitido para la comprobación de planes alternativos. El número de planes que puede
comprobar el optimizador de consulta es limitado.
Selectividad
origen de filas.
– La selectividad afecta a las estimaciones del costo
de E/S.
– La selectividad afecta al costo de ordenación.
• La selectividad está en un rango de valor de 0,0 a 1,0.
• Cuando las estadísticas están disponibles, el estimador a
las utiliza para estimar la selectividad. h a s
m )
o
• Cuando no hay estadísticas disponibles, el estimador
a ilฺc ideฺ
gm t Gu
utiliza los valores por defecto o ejemplos dinámicos.
@
• Con los histogramas de columnas que i d n datos
ngcontienen
e
a
j
sesgados, los resultados constituyen
( Stu
as isestimaciones de
n h
selectividad adecuadas. agó e t
Ar to us
z
he nse
n c e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
S
Copyright
ra able
n d
e
Selectividad
l xa sfer
Laly
n el número de filas de un origen de fila que representa una fracción de las filas
A tracalcula
u
Jdevueltas -
selectividad
n un origen de fila. El juego de filas puede ser una tabla base, una vista o el resultado
nodesde
de una unión o un operador GROUP BY. La selectividad depende del predicado, como last_name
= 'Smith', o de una combinación de predicados, como last_name = 'Smith' AND salary >
2000. La selectividad de un predicado indica cuántas filas de un origen de fila pasarán las prueba de
predicado.
# rows satisfying a condition
Selectivity = -----------------------------
Total # of rows
Cuando hay estadísticas disponibles, el estimador las utiliza para estimar la selectividad. Por
ejemplo, para un predicado de igualdad (last_name = 'Smith'), la selectividad se define en el
recíproco del número de n valores distintos de last_name, porque la consulta selecciona filas que
contienen uno de n valores distintos. Si hay un histograma disponible en la columna last_name, el
estimador lo utiliza en lugar del número de valores distintos. Si no hay ninguna estadística
disponible, el optimizador utiliza ejemplos dinámicos o un valor interno por defecto, en función del
valor del parámetro de inicialización OPTIMIZER_DYNAMIC_SAMPLING. La suposición de un
valor por defecto puede dar lugar al uso de un plan menos óptimo.
Cardinalidad y Costo
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
e
Cardinalidad
l xay Costo
s f er
l
Cardinalidad: an
y A n-trrepresenta el número de filas en un origen de fila. Aquí, el origen de fila puede ser
u
Juna tabla
o
n base, una vista o el resultado de una unión o un operador GROUP BY. Si se realiza una
selección en una tabla, ésta será el origen de fila y la cardinalidad será el número de filas de la tabla.
Nota: no todos los orígenes de fila posibles se tienen en cuenta aquí.
Costo: representa el número de unidades de trabajo (o recursos) que se utilizan. El optimizador de
consulta utiliza la E/S de disco, el uso de CPU y el uso de memoria como unidades de trabajo. Así, el
costo que utiliza el optimizador de consulta representa una estimación del número de E/S de disco y
la cantidad de CPU y de memoria utilizada en la realización de una operación. La operación puede
consistir en la exploración de una tabla, el acceso a filas desde una tabla mediante un índice, la unión
de dos tablas o la ordenación de un origen de fila. El costo de un plan de consulta es el número de
unidades de trabajo que se supone que se van a producir cuando se ejecuta la consulta y se produce el
resultado.
La ruta de acceso determina el número de unidades de trabajo necesarias para obtener los datos de
una tabla base. La ruta de acceso puede ser una exploración de tabla, una exploración completa
rápida de índice o una exploración de índice.
El costo de varios recursos se normaliza en una unidad correspondiente al costo de una lectura de
bloque individual. A continuación, se comparan los costos para diferentes planes de ejecución. Las
unidades de trabajo son estimaciones normalizadas, no medidas físicas, pero las unidades de trabajo
son proporcionales al tiempo.
concreto se puede mejorar el rendimiento de un juego de sentencias SQL, también se puede afectar al
rendimiento global de la aplicación o la instancia. Los parámetros del sistema se aplican a toda la
instancia, incluido el SQL recursivo que la instancia realiza en su nombre. A menudo, los
parámetros del sistema se definen en diferentes valores en una sesión durante la prueba, para
comparar el rendimiento antes de que el parámetro se defina en el nivel de sistema.
Las indicaciones aplicadas a la sentencia SQL son sugerencias para el optimizador y afectan a las
decisiones de éste. Puesto que el cambio del código SQL normalmente no está disponible para el
usuario como DBA, tampoco suele estar disponible el cambio de construcción de sentencias o la
adición de indicaciones. s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
NOWORKLOAD se recopilan por defecto al iniciar la instancia. Para obtener más información,
consulte Oracle Database PL/SQL Packages and Types Reference (Referencia de Paquetes y Tipos
PL/SQL de Oracle Database).
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
Estadísticas Ampliadas
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
n d a b l
Estadísticas
l e xaAmpliadas
s f er
y A n-trno
Elloptimizador anpuede calcular la selectividad para las columnas relacionadas sin estadísticas sobre
u
Jtodas las
nocolumnas implicadas. Anteriormente, estas estadísticas sólo estaban disponibles cuando
había un índice de varias columnas sobre las columnas o en casos limitados por la creación dinámica
de ejemplos (DYNAMIC_SAMPLING >= 4). En Oracle Database 11g, puede crear un grupo de
columnas para proporcionar estas estadísticas al optimizador. Sin embargo, los grupos de columnas
sólo funcionan con predicados de igualdad. Las estadísticas de grupo de columnas permiten
recopilar, almacenar y utilizar las siguientes estadísticas para capturar la dependencia funcional entre
dos o más columnas: el número de valores distintos, el número de valores nulos, los histogramas de
frecuencia y la densidad. Si se utiliza una función para transformar un valor de columna para
utilizarlo en un predicado, las estadísticas de la columna transformada pueden ser muy diferentes.
Puede crear estadísticas de expresión para la expresión. Estas estadísticas de expresión se pueden
crear con o sin un índice basado en funciones. Las estadísticas para funciones basadas en índices se
recopilan por defecto.
Ambos métodos de estadísticas ampliadas crean una columna virtual para la tabla y las estadísticas se
recopilan en dicha columna. La función DBMS_STATS.CREATE_EXTENDED_STATS se utiliza
para crear la columna virtual y el procedimiento GATHER_TABLE_STATS tiene la sintaxis
necesaria para recopilar las estadísticas en esta columna virtual. Para obtener más información sobre
los procedimientos utilizados para crear y mantener estadísticas ampliadas, consulte la sección
DBMS_STATS de Oracle Database PL/SQL Packages and Types Reference (Referencia de Paquetes
y Tipos PL/SQL de Oracle Database) y la guía Oracle Database Performance Tuning Guide (Guía de
Ajuste de Rendimiento de Oracle Database).
Oracle Database 11g: Ajuste de Rendimiento 10-11
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
• El nivel de sistema
• El nivel de sesión
Puede visualizar los valores de parámetro del optimizador para:
• El sistema con V$SYS_OPTIMIZER_ENV
• Las sesiones con V$SESS_OPTIMIZER_ENV
s a
• Un plan específico mediante V$SQL_OPTIMIZER_ENV unido
) h a
con V$SQL o V$SQLAREA c o m
a ilฺ ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Parámetros
l e xdel s f er
a Optimizador
y A n-trseanve afectado por el juego de parámetros del entorno. Unos parámetros afectan
Elloptimizador
u
Jdirectamente
no al optimizador y otros le afectan indirectamente. Todos estos parámetros se pueden
definir en el nivel de sistema (instancia) y algunos de ellos se pueden definir en el nivel de sesión.
Los valores de los parámetros del sistema actuales se pueden visualizar mediante
V$SYS_OPTIMIZER_ENV y los parámetros a nivel de sesión mediante
V$SESS_OPTIMIZER_ENV.
Los parámetros del optimizador que se utilizan para crear un plan SQL concreto se pueden visualizar
mediante V$SQL_OPTIMIZER_ENV unido con V$SQL en (HASH_VALUE, CHILD_ADDRESS)
o con V$SQLAREA en (HASH_VALUE, ADDRESS).
bloques de índice pueden estar en la caché de buffers y que el optimizador ajusta el costo de una
sonda de índice o bucle anidado en consecuencia. Actúe con cautela a la hora de utilizar este
parámetro porque los planes de ejecución pueden cambiar a favor del uso de índices.
OPTIMIZER_INDEX_COST_ADJ
Este parámetro se puede utilizar para ajustar el costo de las sondas de índice. Su rango de valores
oscila entre 1 y 10000. El valor por defecto es 100, lo que significa que los índices se evalúan como
una ruta de acceso en función del modelo de costo normal. Un valor de 10 indica que el costo de una
ruta de acceso de índice es el 10% del costo normal. La definición de este parámetro influye en el s a
optimizador cuando se tiene en cuenta un índice como parte del plan de ejecución. )h a
o m
PGA_AGGREGATE_TARGET
a ilฺc ideฺ
Este parámetro controla de forma automática la cantidad de memoria g m para
asignada
G ulas ordenaciones
y uniones hash cuando el parámetro WORKAREA_SIZE_POLICY @
g den
se define t
en AUTO. La asignación
i n
de mayores cantidades de memoria para las ordenacionessyauniones thash u reducen el costo del
j a
optimizador de estas operaciones. Este parámetro, si (se defineis S
en true, permite que el optimizador
ó
g se
de consulta calcule el costo de una transformación
nestrella t h
para las consultas estrella. La
r a
A de bitmap
transformación estrella combina los índices u en las distintas columnas de la tabla de hechos.
e z t o
OPTIMIZER_MODE
n c h nse
S
El parámetro OPTIMIZER_MODE a lidefine
c e el enfoque que utiliza el optimizador para determinar cuál
es el mejor plan.
n d ra alasbsiguientes
Consulte le diapositivas para obtener más información.
x a f e r
le ans
OPTIMIZER_FEATURES_ENABLE
A y Parámetros con Subrayado (_)
r
y n-tOPTIMIZER_FEATURES_ENABLE controla un juego de parámetros del optimizador,
lparámetro
JuEl no de los cuales son parámetros con subrayado (_). Estos parámetros se pueden definir de
la mayoría
forma independiente, aunque no se recomienda. En general, estos parámetros con subrayado activan
o desactivan determinadas funciones del optimizador. Los Servicios de Soporte Oracle recomiendan
que los clientes no definan estos parámetros con subrayado de forma independiente, sino sólo a
través del parámetro OPTIMIZER_FEATURES_ENABLE.
Otros Parámetros de Inicialización
La vista V$SES_OPTIMIZER_ENV muestra todos los parámetros de sesión utilizados por el
optimizador de alguna forma. La mayoría de estos parámetros son parámetros ocultos. Muchos de
ellos están relacionados con la consulta paralela o las vistas materializadas. Existen parámetros
relacionados con la gestión de planes SQL que se tratarán en la lección Gestión del Rendimiento
SQL. Puede visualizar todos los parámetros de sesión con el siguiente comando:
SELECT * FROM V$SES_OPTIMIZER_ENV;
Uso de Indicaciones
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Indicaciones
• Son directivas (sugerencias) para el optimizador
• Requieren cambios en el código
• Son útiles para probar rutas de acceso específicas
• Se deben mantener a través de actualizaciones
• Mejor rendimiento
– Tiempo necesario para terminar la solicitud
– Adecuado para:
— Procesamiento por lotes
— Aplicaciones de informe
• Respuesta rápida
– Tiempo para recuperar las primeras filas s a
)h a
– Adecuado para: m
o
—Aplicaciones interactivas
a ilฺc ideฺ
—Aplicaciones GUI o basadas en web
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Optimización
l e er
xade lassfSentencias SQL
A r a n
ly nun-tobjetivo para el optimizador en función de las necesidades de la aplicación:
JuSeleccione
nolas aplicaciones ejecutadas por lotes (como las aplicaciones de Oracle Reports), optimice
• Para
para un mejor rendimiento. El rendimiento suele ser más importante en aplicaciones por lotes
porque el usuario que inicia la aplicación sólo está interesado en el tiempo necesario para
terminarla. El tiempo de respuesta es menos importante porque el usuario no examina los
resultados de las sentencias individuales mientras la aplicación se está ejecutando.
• Para las aplicaciones interactivas (como aplicaciones Oracle Forms o consultas de SQL*Plus),
optimice para un tiempo de respuesta mejor. El tiempo de respuesta suele ser importante en
aplicaciones interactivas porque el usuario interactivo está en espera de ver la primera fila o las
primeras filas a las que accede la sentencia. Puede definir el número de filas que se deben
recuperar primero con el modo del optimizador de FIRST_ROWS_n, donde n especifica el
número de filas y se puede personalizar para las distintas páginas de la aplicación.
Nota: el modo FIRST_ROWS_n se basa únicamente en los costos y es sensible al valor de n. Con
valores pequeños de n, el optimizador tiende a generar planes que consisten en uniones de bucles
anidados con consultas de índice. Con valores grandes de n, el optimizador tiende a generar planes
que consisten en uniones hash y exploraciones de tablas completas.
Prueba
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Rutas de Acceso
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Rutas dele xa sfer
Acceso
l
Las
A de acceso
yrutas - t r anson las vías por las que los datos se recuperan de la base de datos. Cualquier fila
u
Jse puede n
nolocalizar y recuperar con uno de los métodos mencionados en la diapositiva. Las rutas de
acceso son las vías por las que los datos se recuperan de la base de datos.
El método de acceso debe corresponder a las estructuras de datos que se utilicen en la base de datos.
Las tablas y los índices son los más comunes, pero los clusters y las tablas organizadas por índices
(IOT) se utilizan en muchos casos. Incluso los índices tienen diferentes estructuras, árbol B*, bitmap
y dominio. (La estructura de índice de dominio y los métodos de acceso los define el usuario y están
fuera del alcance de este curso.)
En general, las rutas de acceso de índice se deben utilizar para sentencias que recuperan un pequeño
subjuego de filas de tabla, mientras que las exploraciones completas son más eficaces cuando se
accede a gran parte de la tabla. Las aplicaciones de procesamiento de transacciones en línea (OLTP),
que constan de sentencias SQL de corta ejecución con alta selectividad, se suelen caracterizar por el
uso de rutas de acceso de índice. Por otro lado, los sistemas de toma de decisiones (DSS) tienden a
utilizar exploraciones completas de los objetos relevantes. Las estructuras de IOT y clusters se
utilizan en casos concretos.
La exploración de tabla de ejemplo devuelve un ejemplo aleatorio de las filas o bloques de la tabla.
Este método se utiliza para la creación de ejemplos de datos en DSS y las aplicaciones de minería de
datos.
Nota: esta clase incluye un subjuego de las operaciones de ruta de acceso más utilizadas.
Oracle Database 11g: Ajuste de Rendimiento 10-20
FUNDACION DE EGRESADOS DE LA UNIVERSIDAD DISTRITAL
Nota: una llamada de E/S multibloque es más cara que una llamada de E/S de un solo bloque, pero
una llamada de E/S multibloque para 8 bloques, por ejemplo, es menos cara que 8 llamadas de un
único bloque.
Ejemplo: una exploración de tabla completa de una tabla que se puede leer con una llamada de E/S
es menos cara que una consulta de índice para recuperar sólo una fila. El índice debe realizar una E/S
para leer la cabecera del índice, al menos una más para leer el bloque de hoja y una tercera para leer
el bloque de la tabla.
El optimizador utiliza una exploración de tabla completa en cada uno de los siguientes casos:
s
• Falta de índice: si la consulta no puede utilizar ningún índice existente, utilizará una a
) h a
exploración de tabla completa. Por ejemplo, si hay una función utilizada en la columna indexada
o m
de tabla completa. a ilฺc ideฺ
de la consulta, el optimizador no podrá utilizar el índice y en su lugar, utilizará una exploración
gm t Gu
• Gran cantidad de datos: Si el optimizador cree que la consulta tendrá acceso a la mayoría de
@
i ng uden
los bloques de la tabla, utilizará una exploración de tabla completa, incluso aunque los índices
a
puedan estar disponibles.
( j as is St
n th
• Tabla pequeña: si una tabla contiene menos bloques que el valor de
g ó
a e
z Ar to us
DB_FILE_MULTIBLOCK_READ_COUNT por debajo de la marca de agua superior, una
exploración de tabla completa puede ser menos costosa porque se podrá leer en una sola llamada
de E/S. n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
Operaciones de Índice
Tipos de exploraciones de índice:
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Operaciones
l e xade Índice
s f er
l
Paray todas - an de exploración de índice, se utilizan los valores de columna necesarios para
A lastopciones
r
u on SQL busque en el índice. Se devuelve el ID de fila y se utiliza para acceder a la
Jque lansentencia
tabla, si es necesario. Si la sentencia SQL se puede satisfacer sólo con los valores de columna del
índice, no se accede al acceso a la tabla. Si la sentencia accede a otras columnas además de las
columnas indexadas, la base de datos Oracle podrá buscar las filas en la tabla mediante un acceso por
identificador de fila o una exploración de cluster. La operación de unión de índices evita el acceso a
la tabla mediante la unión de varios índices en el ID de fila para cumplir la lista de selección. La
operación de bitmap incluye las operaciones BITMAP INDEX SINGLE VALUE, BITMAP AND y
OR, y BITMAP CONVERSION TO ROWID.
n d a b l
Operaciones
l e xade Índice
s f erde Árbol B*
Enly
A trasen muestra cada operación de índice de árbol B* y el nombre de operación del plan
la diapositiva
u -
non correspondiente. Cada operación de índice muestra también el nombre del índice y el
Jde ejecución
número de filas recuperadas o estimadas.
Exploración única sólo está disponible para los predicados de igualdad en una columna con una
restricción de clave única o primaria.
Exploración de rango de índices es normalmente una exploración ascendente, pero si se utiliza la
indicación INDEX_DESC en la sentencia o existe una cláusula ORDER BY DESC, la exploración se
puede convertir en descendente.
Exploración de omisión de índice permite dividir lógicamente un índice compuesto en subíndices
más pequeños. En la exploración de omisión, la columna inicial del índice compuesto no se
especifica en la consulta. Es decir, se omite.
Exploración completa de índice lee todos los bloques de un índice en el orden del índice con
lecturas de bloque individuales. Nota: las entradas del índice están ordenadas en los bloques, pero el
orden de los bloques en el segmento no suele ser secuencial.
Exploración de índice completa rápida lee todos los bloques de un índice mediante E/S
multibloque y desecha los bloques innecesarios. Se puede utilizar cuando el índice contiene todas las
columnas que necesita el plan.
Unión de índices es una unión hash en el ID de fila de las entradas del índice. Todas las columnas
necesarias deben estar en los índices.
Índices de Bitmap
Valores de clave
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
BE 1 0 0 0 0 0 0 0 0 0 0 0
DE 0 1 0 0 0 0 0 0 0 0 0 0
Bitmap para
FR 0 0 1 1 1 1 0 0 0 0 0 0 el valor de clave FR
IL 0 0 0 0 0 0 1 0 1 0 0 0
NL 0 0 0 0 0 0 0 1 0 0 0 0
UK 0 0 0 0 0 0 0 0 0 1 1 1 a
a s
m )h
Se define el bit para el registro
l ฺ c o ocho ฺ
Valores de clave porque la fila tiene elavalor NL i i d e
en la columna COUNTRY.
@ gm t Gu
a i ng uden
M 1 1 1 0 1 1 0 1 1 (1jas 1 1 St
F 0 0 0 1 0 0 a 1g0ón0 0e0th0
is Bitmap para
A r u s el valor de clave F
ez se t o
c h
S
Copyright eny/o sus filiales. Todos los derechos reservados.
an© 2010,licOracle
n d ra able
Índices de l e xa sfer
Bitmap
A tranB* almacena una entrada que contiene el valor de clave y el ID de fila de cada
Unlyíndice de-árbol
u n de bitmap empieza con la raíz y los bloques rama del árbol B*, pero en lugar de una
Jfila. Unnoíndice
entrada para cada fila, se crea un bitmap para cada valor de clave. Para cada ID de fila se define un
bit si la fila contiene un valor de clave. Se utiliza una función de asignación para transformar la
posición de bit en un ID de fila real. En un árbol B*, una entrada de índice apunta a una única fila.
Con los índices de bitmap, una única entrada de índice utiliza un bitmap para apuntar a varias filas
simultáneamente.
Los índices de bitmap son adecuados para datos muy repetitivos (datos con pocos valores distintos en
relación con el número total de filas de la tabla) que son en su mayoría de sólo lectura. Estos índices
nunca se deben tener en cuenta en una base de datos OLTP debido a los problemas relacionados con
la simultaneidad.
Un índice de bitmap tiene una estructura muy diferente; no se almacena ningún ID de fila. Cada valor
de clave diferente tiene su propio bitmap. Cada cabecera de bitmap almacena los ID de fila de inicio
y finalización. Según estos valores, el servidor utiliza un algoritmo interno para asignar los bitmaps
en los ID de fila.
Cada posición del bitmap se asigna a una posible fila de la tabla. El contenido de esa posición en el
bitmap para un valor concreto indica si la fila tiene ese valor en las columnas del bitmap. El valor
almacenado es 1 si los valores de la fila coinciden con la condición del bitmap; de lo contrario,
será 0.
SELECT CUST_LAST_NAME
FROM CUST
WHERE country_iso = 'FR';
-------------------------------------------------------------------------
| Id | Operation | Name | Rows |Cost |
-------------------------------------------------------------------------
s a
| 0 | SELECT STATEMENT | | 2921 | 368 |
)h a
| 1 | TABLE ACCESS BY INDEX ROWID | CUST | 2921 | 368 |
o m
| 2 | BITMAP CONVERSION TO ROWIDS| | | |
a ilฺc ideฺ
gm t Gu
|* 3 | BITMAP INDEX SINGLE VALUE | CUST_COUNTRY | | |
@
-------------------------------------------------------------------------
ng uden
Predicate Information (identified by operation id):
a i
---------------------------------------------------
( j as is St
3 – access(COUNTRY_ISO<‘FR’)
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Acceso ale Índices er
xa desfBitmap
l
Esta
A texplora
y consulta
- r an el bitmap para el país FR para obtener las posiciones que contienen un 1. Para
u
non se devuelven sus correspondientes filas para consulta. En algunos casos (por
Jestas posiciones
ejemplo, una consulta que contabilice el número filas con COUNTRY_ISO = 'FR'), la consulta
puede utilizar simplemente el propio bitmap y realizar un recuento del número de valores 1 (sin
necesidad de las filas reales).
Cuando el optimizador utiliza un bitmap, debe incluir siempre un paso BITMAP CONVERSION TO
ROWIDS para poder acceder a la fila de la tabla.
Combinación de Bitmaps
SELECT * SELECT *
FROM CUST FROM CUST
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
FR 0 0 1 1 1 1 0 0 0 0 0 0 FR 0 0 1 1 1 1 0 0 0 0 0 0
O Y
DE 0 1 0 0 0 0 0 0 0 0 0 0 M 1 1 1 0 1 1 0 1 0 1 1 1
s a
0 1 1 1 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0) h 0a
c o m
1 | TABLE ACCESS BY a
ฺ
il ROWID e ฺ|
1 | TABLE ACCESS BY INDEX ROWID
2 | BITMAP CONVERSION TO ROWIDS |
|
2 | BITMAP CONVERSIONg
INDEX
m TOGROWIDS u i d |
3 | BITMAP INDEX SINGLE VALUE | 3 | @
BITMAP AND n t
g de SINGLE VALUE ||
4 | ain
-----------------------------------
4 - access(("COUNTRY"='DE' OR
( 5ja|s S
BITMAP tuINDEX SINGLE VALUE |
BITMAP INDEX
"COUNTRY"='FR'))
g ó e his
n -----------------------------------
4 t- access("GENDER"='M')
A ra us 5 - access("COUNTRY"='FR')
h e z e to
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
Combinación
l e xade Bitmaps
s f er
l y Aa las
Gracias - t r an fast bit-and, bit-minus y bit-or, los índices de bitmap son eficaces:
operaciones
u
non se utiliza IN (lista de valores)
J • Cuando
• Cuando se combinan predicados con AND/OR
Los índices de bitmap se pueden utilizar eficazmente cuando una consulta combina varios valores
posibles para una columna o cuando se utilizan dos columnas indexadas por separado.
En algunos casos, una cláusula WHERE puede hacer referencia a varias columnas indexadas por
separado.
Si tanto la columna COUNTRY como GENDER tienen índices de bitmap, con una operación bit-and
en los dos bitmaps encontraría rápidamente las filas que está buscando. Cuanto más complejas sean
las cláusulas WHERE, más ventajas obtendrá de los índices de bitmap.
Operaciones de Bitmap
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
BITMAP CONVERSION
• Puede ser TO o FROM ROWIDS
BITMAP INDEX
• Consulta de un único valor
• Exploración de rango
• Exploración completa a
• Exploración completa no rápida h a s
m )
o
BITMAP MERGE
a ilฺc ideฺ
BITMAP AND / OR
@ gm t Gu
BITMAP MINUS a i ng uden
BITMAP KEY ITERATION ( j as is St
n h gó se t
r
A to ua
e
h nsez
n c e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
S
Copyright
ra able
n d
Operaciones
l e xade Bitmap
s f er
n
A traCONVERSION
y BITMAP
u l
Con - FROM ROWID, el optimizador convierte de forma improvisada un
n B* en un bitmap (cuando
Jíndicendeoárbol el costo es inferior al de otros métodos) para poder utilizar
estas eficaces operaciones de comparación de bitmaps. Una vez que se realiza la comparación de
bitmaps, el bitmap resultante se vuelve a convertir en ID de fila (BITMAP CONVERSION TO
ROWIDS) para realizar la consulta de datos.
Con la operación BITMAP MINUS, el servidor toma el segundo bitmap y lo niega, cambiando los
unos por ceros y los ceros por unos. A continuación, la operación bitmap minus se podrá realizar
como BITMAP AND con este bitmap negado.
Las operaciones BITMAP MINUS, AND y OR son operaciones binarias que utilizan dos orígenes de
fila de bitmap como entrada. Las operaciones de bitmap KEY ITERATION y MERGE son
operaciones n-arias. MERGE combina un juego de bitmaps. KEY ITERATION toma cada fila de un
origen de fila de tabla y busca el bitmap correspondiente en un índice de bitmap. Esta operación va
seguida de la operación BITMAP MERGE que fusiona el juego de bitmaps en un solo bitmap.
Puesto que los bitmaps se almacenan en una estructura de árbol B*, los métodos de acceso básicos
SINGLE VALUE, RANGE SCAN y FULL SCAN funcionan con índices de bitmap. SKIP SCAN y
FAST FULL SCAN no funcionan con índices de bitmap.
Operaciones de Unión
orígenes de fila.
• Para cada unión, el optimizador determina lo siguiente (en
secuencia):
1. Orden de unión de las tablas
2. Mejor método de unión que se va a aplicar a cada unión
3. Ruta de acceso para cada origen de fila
s a
• El orden de unión se ve afectado por las siguientes reglas )h a
o m
incorporadas:
a ilฺc ideฺ
– Un predicado de una sola fila fuerza al origen
@ gmde tlaGfilau a que
se coloque primero en el orden de unión.
a i ng uden
– Para uniones externas, la tabla ( j s la tabla
acon S t de unión externa
debe ir después de la otra ó n s
tabla entheli orden de unión para el
g
a us
runión. e
procesamiento de la A
z e to
h e
a e ny/os sus filiales. Todos los derechos reservados.
n©c2010,icOracle
r a S el
Copyright
n d a b l
Operaciones
l e xade Unión
s f er
l
Una
A es tuna
yunión - r anoperación binaria que une sólo dos orígenes de fila. Una unión de varias filas
u
Jconstandeolan unión de dos tablas y la unión posterior del origen de fila resultante a otra tabla u origen
de fila hasta que se realicen todas las uniones.
Para cada sentencia de unión, el optimizador determina lo siguiente (en secuencia):
1. El orden de unión de las tablas
2. La mejor operación de unión que se va a aplicar a cada unión
3. La ruta de acceso para cada origen de fila
El número de tablas implicadas determina el número de órdenes de unión que se evaluarán, el
número de órdenes de unión crece de forma factorial con el número de tablas. (Número de
tablas)!=Número de órdenes de unión. Algunas órdenes de unión no se pueden tener en cuenta,
debido a las reglas de orden de unión incorporadas en el optimizador:
• Un predicado de una sola fila fuerza al origen de la fila a que se coloque primero en el orden de
unión.
• Para uniones externas, la tabla con la tabla de unión externa debe ir después de la otra tabla en el
orden de unión para el procesamiento de la unión.
Se comparan los costos de varios métodos de unión para cada orden de unión. Algunos métodos no
se pueden utilizar con algunas uniones debido a las limitaciones del método. Por ejemplo, una unión
hash no se puede utilizar para una unión no igualitaria.
Métodos de Unión
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
Para cada fila de la tabla externa o m
a ilฺc ideฺ
Para cada fila de la tabla @ gm t Gu
interna
a i ng uden
Comprobación
( j as is de Stuna
g ó n coincidencia
th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Unión dele xa Anidados
Bucles s f er
u l y A nLOOPS
NESTED - t ran
J noTABLE ACCESS (…) OF our_outer_table
TABLE ACCESS (…) OF our_inner_table
Debido a que se suelen utilizar con accesos indexados a tablas, los bucles anidados son comunes con
un plan de ejecución similar al siguiente:
NESTED LOOPS
TABLE ACCESS (BY row ID) OF our_outer_table
INDEX (... SCAN) OF outer_table_index (…..)
TABLE ACCESS (BY row ID) OF our_inner_table
INDEX (RANGE SCAN) OF inner_table_index (NON-UNIQUE)
A la tabla externa (principal) se suele acceder con una exploración de tabla completa. Si se determina
que una tabla de la unión devuelva una única fila, la regla de orden de unión la forzará a ser la tabla
principal. Si el predicado de unión es una unión no igualitaria, se podrá acceder a la tabla interna con
una exploración de tabla completa, una vez por cada fila de la tabla principal, dando lugar a
exploraciones completas de tablas repetidas.
La unión de bucles anidados se puede utilizar siempre para unir dos tablas. Por lo tanto, el
optimizador utilizará la unión de bucles anidados cuando no se puedan utilizar las uniones
fusión/ordenación, hash o cluster. Estas técnicas de unión se tratan más adelante en esta lección.
Oracle Database utiliza un optimizador interno denominado recuperación previa del bloque de datos.
La consulta de tabla utiliza la recuperación previa del bloque de datos. Cuando se selecciona una ruta
de acceso de índice y el índice no puede satisfacer por sí mismo la consulta, se deben recuperar
también las filas de datos que indica el ID de fila. Las entradas del índice se recuperan y ordenan por
ID de fila y, posteriormente, se utilizan para recuperar filas de la tabla. Este comportamiento es
automático y no se puede ver influenciado por las indicaciones. En uniones con recuperación previa
del bloque de datos, puede consultar el plan de explicación, como el siguiente:
NESTED LOOPS (Cost=…)
NESTED LOOPS (Cost=…)
TABLE ACCESS (FULL) OF(…) s a
INDEX (RANGE SCAN) OF (…)
) h a
TABLE ACCESS (BY INDEX row ID) OF (…)
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
Unión Hash
Uniones de Fusión/Ordenación
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
)h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Uniones ldee a sfer
xFusión/Ordenación
Enly
A trande ordenación, los dos orígenes de fila se ordenan por los valores de las columnas
u -
las operaciones
nonen el predicado de unión. Si ya se ha ordenado un origen de fila en una operación anterior,
Jutilizadas
la operación de fusión/ordenación omite la ordenación en dicho origen de fila. La ordenación puede
hacer que esta técnica de unión resulte costosa, especialmente si la ordenación no se puede realizar
en la memoria.
La operación de fusión combina los dos orígenes de fila ordenados para recuperar los pares de filas
que contienen los valores que coinciden para las columnas utilizadas en el predicado de unión.
Plan de Ejecución Básica
MERGE (JOIN)
SORT (JOIN)
TABLE ACCESS (…) OF table_A
SORT (JOIN)
TABLE ACCESS (…) OF table_B
Los accesos a tablas (table_A y table_B) se pueden basar en exploraciones de índices si no hay
ningún predicado no de unión que pueda utilizar un índice. Sin embargo, esta operación de unión
aparece con frecuencia con exploraciones de tablas completas en ambas tablas.
La secuencia (cuya tabla se ordena primero) no tiene importancia; no hay ningún concepto de tabla
externa o principal. Recuerde que la ordenación puede dar lugar a la creación de segmentos
temporales en el disco (proporcionando más E/S que las mismas exploraciones de tablas).
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no
Rendimiento de la Unión
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Selección de los Planes de Ejecución para Uniones por Parte del Optimizador de
Consulta (continuación)
• El optimizador genera un juego de planes de ejecución según los posibles órdenes de unión, los
métodos de unión y las rutas de acceso disponibles. A continuación, estima el costo de cada plan
y selecciona el que lo tenga más bajo. El optimizador estima los costos de los siguientes modos:
- El costo de una operación de bucle anidado se basa en el costo de lectura de cada fila
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
l e xa sfer
u l y A n-tran
J no
Operaciones de Ordenación
•
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
SORT UNIQUE
• SORT AGGREGATE
• SORT GROUP BY
• SORT JOIN
• SORT ORDER BY
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
Operaciones
l e s er
xade Ordenación
f
l A tradenordenación se producen cuando los usuarios especifican una operación que
yoperaciones
Las
u
Jnecesita
nounan-ordenación. Entre las operaciones más utilizadas se incluyen las siguientes:
• SORT UNIQUE se produce si un usuario especifica una cláusula DISTINCT o si una operación
necesita valores únicos para el siguiente paso. Se eliminan los valores duplicados.
• SORT AGGREGATE no implica realmente una ordenación. Se utiliza cuando se calculan los
agregados en todo el juego de filas.
• SORT GROUP BY se utiliza cuando los agregados se calculan para distintos grupos de datos.
Para esta operación, se realiza una unión hash para agregar los grupos.
• SORT JOIN se produce durante una unión de fusión/ordenación si es necesario que la clave de
unión ordene las filas.
• SORT ORDER BY es necesaria cuando la sentencia especifica un ORDER BY que no se puede
satisfacer por ninguno de los índices.
Prueba
Puede considerar un origen de fila utilizado por el optimizador
como una tabla en memoria. Un origen de fila puede ser una
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Resumen
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S
Copyright e y/o sus filiales. Todos los derechos reservados.
a © 2010,licOracle
n d ra able
l e xa sfer
u l y A n-tran
J no
s a
) h a
o m
a ilฺc ideฺ
@ gm t Gu
a i ng uden
( j as is St
g ó n th
a e
z Ar to us
n c he nse
S a lice
n d ra able
l e xa sfer
u l y A n-tran
J no