¿Tienes una cuenta? identificate: Usuario Contraseña o puedes obtener una gratis.

Scripts para deteccion de queries costosos

,
14/may/2009::11:17

Estos 2 scripts ayudan a detectar los eventos en espera PASO1 y despues con el valor HASH de dicho evento obtendremos el plan de ejecucion esto para cuando no tenemos disponible el ORACLE GRID.

PASO 1. Script para detector los eventos de espera:

 

select count(1), s.sql_hash_value, sw.event   

from v$session s, v$session_wait sw   

where s.sid=sw.sid  and sw.event!='SQL*Net message from client'

group by s.sql_hash_value,sw.event   

order by 3 desc;

 

 

PASO 2. A través del SQL_HASH_VALUE se puede obtener el plan de ejecución

 

select * from table(dbms_xplan.display_cursor(1424292821));

 

 

 

EJEMPLO

 

 

PASO1 Ejecutar el primer query.

 

COUNT(1)           SQL_HASH_VALUE          EVENT

 

1              4208348705         db file sequential read

1              1046569919         db file scattered read

1              0              db file parallel write

1              0              Streams AQ: waiting for messages in the queue

 

PASO 2. Usar el valor hash en el Segundo query

select * from table(dbms_xplan.display_cursor(4208348705));

 

 

PLAN_TABLE_OUTPUT

HASH_VALUE  4208348705, child number 0

--------------------------------------

SELECT /*+FIRST_ROWS*/ a.t$oorg FROM baandb.twhinh200451 a WHERE a.t$sfit = :1

 

Plan hash value: 1523578419

 

--------------------------------------------------------------------------------------

| Id  | Operation        | Name              | Rows  | Bytes | Cost (%CPU)| Time     |

--------------------------------------------------------------------------------------

|   0 | SELECT STATEMENT |                   |       |       | 14506 (100)|          |

|*  1 |  INDEX FULL SCAN | TWHINH200451$IDX5 |     1 |    51 | 14506   (4)| 00:02:55 |

--------------------------------------------------------------------------------------

 

Predicate Information (identified by operation id):

---------------------------------------------------

 

   1 - access("A"."T$SFIT"=:1)

       filter("A"."T$SFIT"=:1)

 

[ Enlace | Un miserable comentario :( ] del.icio.us del.icio.us Estrella este post *****
comparte esto
Comparte esta entrada (del.icio.us, por correo, etc) o agrega este blog a tu Google Reader.

Entradas relacionadas:
  1. Deteccion de Bloqueos en ORACLE
  2. Cuanto tiempo lleva corriendo el SLQ service?
  3. Variables de ambiente en 1,2 x 3
  4. Renombrar Tablespace
  5. Creacion de oracle DB mediante Script

Han escrito 1 comentarios de «Scripts para deteccion de queries costosos»

foto tenex
Jueves 14 de mayo, 2009 11:37.

ha rifado chido el aporte

Si usted tiene una cuenta en ymipollo.com, identifíquese:
Usuario: Password: (recordar identificación en este blog)
De lo contrario, escriba sus datos (todos los campos son obligatorios.):
Nombre: Correo E.:
Blog/Web: recordar datos.
[ si eres visitante puedes obtener tus comentarios con foto suscribiendote a gravatar. Tenga en cuenta que como usuario anónimo, su dirección IP será almacenada y mostrada al dueño de la entrada en cada comentario. ]
Escriba su comentario:
Por favor escriba respecto al post, procure revisar su ortografía. Si su comentario no es respecto al tema, por favor no lo haga.

Usted escribirá este mensaje como:
Es posible que su comentario no aparezca de forma inmediata (o que nunca aparezca) eso depende de la decisión del autor de este blog.

enviarme correo cuando alguien comente suscribirse a este post.