Oracle Live

14/04/2016

Stored Outlines

Filed under: Debugger,Laboratorios — mogukiller @ 2:54 pm

Las outlines es el conjunto de hints de una sentencia que permite mantener el plan de ejecución aunque se produzcan cambios en el sistema.
(more…)

09/04/2016

Listado de eventos

Filed under: Debugger — mogukiller @ 2:13 pm
Tags: ,

Siempre es bueno tener a mano el listado de eventos para poder poner trazas.
(more…)

02/04/2016

Purgar cursor en la shared pool

Filed under: Database,Debugger,SQL Tuning — mogukiller @ 1:32 am

Cuando tenemos una query que ha cambiado su plan de ejecucion y queremos comprobar si los cambios que hemos hecho favorecen que vuelva a coger el plan de ejecución bueno, es necesario que primero invalidemos el cursor que se encuentra almacenado en la shared.
(more…)

Trazas 10053. Como se comporta el CBO

Filed under: Debugger,Laboratorios — mogukiller @ 1:30 am

Para poder entender como trabaja el optimizador y porque decide un determinado plan de ejecución se puede utilizar las trazas 10053.
(more…)

Parsea 10046 para 10g

Filed under: Debugger,Scripts — mogukiller @ 1:29 am
Tags:

Todos nos hemos encontrado con el problema de saber que esta haciendo una sesion y donde esta invirtiendo el tiempo. Con las vistas de base de datos y la frecuencia de sampleo (1 seg para la v$action_session_history, 1 min para la dba_hist_activ_sess_hist y 1 hora para las vistas del repositorio de awr) seguramente estemos perdiendo información de lo que esta pasando. Una posible solución es habilitar las trazas 10046 y luego analizar con tkprof. El problema del tkprof es que te agrupa las queries perdiendo la vision de la secuencialidad de las queries. Para solucionar esto esta este script en perl.
Este script es valido para versiones 10g.


./parsea_10046_10g prueba_ora_14145.trc >salida.out

/*EJ. SALIDA
[09:05:42] Num query: 50    --> sqlid: 7f8f94e0   SELECT * FROM EMPLEADOS WHERE ROWNUM<10
[09:06:07] Num query: 51    --> sqlid: 7f8f0490   UPDATE EMPLEADOS SET ID_DEPARTAMENTO=4 WHERE ID_EMPLEADO=10
[09:06:10] Num query: 52    --> sqlid: 0          COMMIT
[09:06:29] Num query: 53    --> sqlid: 7f8ee5e8   SELECT NOMBRE FROM EMPLEADOS WHERE ID_EMPLEADO=10
[09:06:49] Num query: 71    --> sqlid: 7f8ee248   SELECT * FROM PRUEBA_RMAN WHERE ROWNUM<10
*/

(more…)

Parsea 10046 para 11g

Filed under: Debugger,Scripts — mogukiller @ 1:28 am
Tags:

Todos nos hemos encontrado con el problema de saber que esta haciendo una sesion y donde esta invirtiendo el tiempo. Con las vistas de base de datos y la frecuencia de sampleo (1 seg para la v$action_session_history, 1 min para la dba_hist_activ_sess_hist y 1 hora para las vistas del repositorio de awr) seguramente estemos perdiendo información de lo que esta pasando. Una posible solución es habilitar las trazas 10046 y luego analizar con tkprof. El problema del tkprof es que te agrupa las queries perdiendo la vision de la secuencialidad de las queries. Para solucionar esto esta este script en perl.
Este script es valido para versiones 11g.

Una consideracion a tener en cuenta con los tiempos de Elapsed time proporcionados es que no se han eliminado los tiempos de idle.

Version de Oracle testada: 11.2.0.4
(more…)

Trigger Enable trace 10046

Filed under: Debugger,PLSQL — mogukiller @ 1:27 am
Tags:

Mi pidieron en una situación monitorizar que estaba haciendo un determinado proceso. Cuando miré en la base de datos en realidad había como 20 procesos trabajando con las caracteristicas que me habían pasado. Por lo que, o eres muy rapido habilitando sesiones o tienes que pasar por un trigger que te habilite las trazas para un determinado usuario. Aqui os dejo un posible ejemplo.
(more…)

01/04/2016

Enable / Disable Trace 10046

Filed under: Debugger — mogukiller @ 4:42 pm

Os dejo unos scripts que os permitiran automatizar el habilitar y deshabilitar las trazas a una sesion.
(more…)

Crea una web o blog en WordPress.com