Desarrolladores
redPartner
Eventos de Espera
en la Base de Datos
1
Por qu preocuparnos por el tiempo?
El Performance siempre se trata de tiempo
redPartner
Las mejoras en performance a menudo buscan hacer las
cosas ms rpido.
2
Database time (DB Time)
redPartner
Excluye tiempos de espera idle.
3
Una Sola Sesin
redPartner
Buscar
Libros
Leer los
Reviews de un
Libro
Adicionar
al carrito
de
compras
Checkout
4
Conceptos Fundamentales
Active Session =
Sesin que actualmente est trabajando en un llamado a la base de datos
Database Time (DB Time) =
Tiempo total de las sesiones en llamados activos a la bd
redPartner
Average Activity of the Session (% Activity) =
La proporcin del tiempo activo al tiempo de reloj
Adicionar
Leer los
Buscar al carrito
Reviews de un Checkout
Libros de
Libro
compras
5
Active sessions
redPartner
Active sessions son sesiones que
contribuyen al DB time en un momento
especfico.
6
Mltiples Sesiones
DB Time = Suma de DB Time de todas las Sesiones
redPartner
En el tiempo t tenemos 2 sesiones activas
User 1
User 2
User 3
User n
Tiempo
t
= tiempo gastado en bd
7
La frmula
Database Time
Avg. Active Sessions =
Tiempo reloj(Transcurrido)
redPartner
Buscar
Libros
Leer los
Reviews de un
Libro
Adicionar
al carrito
de
compras
Checkout
8
Ejemplo- que se hace con el db time ?
Talvez deba
CPU investigar los
other waits?
I/O
redPartner
Other Waits
User 1
User 2
User 3
User n
9
Carga del sistema y el DB time
Mas usuarios
=> Mas llamadas a la bd
=> Incrementa el DB Time
redPartner
Transacciones ms largas
=> Llamadas ms largas
=> Incrementa el DB Time
10
Desempeo del sistema y DB time
IO performance se degrada
=> IO time sube
=> DB time sube
redPartner
El performance de la aplicacin se degrada
=> Incrementan tiempos de espera
=> DB time sube
11
Afinamiento de DB Time
DB Time puede sumarse a distintos niveles
Database / instance
Servicio / mdulo / accin
Sesin / user / client id
redPartner
SQL id / rowsource
12
Solucin de problemas de
Performance Fase 1
Descubrir el problema:
Llamada del usuario , otro tipo de queja
Monitoreo del sistema
Alcance del problema
redPartner
Qu tan amplio es su alcance ?
Cual es la severidad ?
Quin est malgastando el DB Time y que tnto ?
Diagnstico del problema
13
Concepto: Esperas
redPartner
evento antes de poder continuar con la ejecucin
de una operacin.
Se los puede identificar en la vista
V$EVENT_NAME
14
Eventos de espera Comunes
Evento de Espera Area
buffer busy waits Buffer cache, DBWR
free buffer waits Buffer cache, DBWR, I/O
db file scattered read I/O, sentencias SQL
redPartner
db file sequential read
enqueue waits (empiezan
con enq:)
library cache latch waits:
library cache, librarycache
pin y library cachelock
I/O, sentencias SQL
Locks
Latch contention
log buffer space Log buffer, I/O
log file sync I/O, over- committing
15
Perfil de ejecucin
redPartner
-------------------------------------------- ------------ ----------- --------
CPU time 37,297 52.27
SQL*Net message from dblink 7,065,802 11,312 15.85
async disk IO 943,852 5,265 7.38
db file sequential read 13,042,432 3,493 4.90
direct path write 108,862 3,410 4.78
-------------------------------------------------------------
16
Por qu a un desarrollador le
importan stos eventos ?
redPartner
pasando el tiempo mi cdigo
2. La escalabilidad es importante
17
Top 10 Wait Events
redPartner
4. Debemos saber que valores son aceptables
5. Entender lo que se requiere para arreglarlos
18
CPU
No es un evento de espera pero aparece en muchos reportes
Tiempo utlilizado en uso de CPU
Debe aparecer de primero en los reportes de anlisis de performance
redPartner
19
db File Sequential Read
redPartner
accesos va ndices.
Valor razonable: <10ms
20
db File Scattered Read
redPartner
Este evento identifica cundo sucede un table scan.
Valor razonable: <10ms
21
direct path Read/Write
redPartner
Valor razonable: <20ms
22
Log File Sync
redPartner
23
Buffer Busy Waits
redPartner
y undo block
24
Free Buffer Waits
Este evento indica por lo general que existen dirty buffers que no han
sido liberados por el DBWR y los procesos no encuentran bloques
libres.
redPartner
El DBWR puede no escribir lo suficientemente rpido a disco segn el
requerimiento del sistema y la arquitectura presente.
25
SQL*Net message from client
redPartner
Cmo arreglarlo
Afinar el app server
Reducir el nmero de llamadas
Call network guy
Que los usuarios escriban ms rpido
26
Esperas en Library Cache
redPartner
27
Library Cache Pin
redPartner
28
Library Cache Lock
redPartner
Evitar que otros clientes accedan al mismo objeto
mientras ste se modifica.
29