Oracle Live

11/04/2016

QUERY – Get sqlid or sqltext

Filed under: Queries — mogukiller @ 11:28 pm
Tags:

Conjuto de queries que ayudan a identificar el sqlid o el sqltext de nuestras queries.


— Obtenemos el sql text de un determinado sqlid
set long 10000
SELECT SQL_FULLTEXT FROM GV$SQL WHERE SQL_ID=’&sqlid’ and rownum<2;
/*
SQL_FULLTEXT
——————————————————————————–
select /*+ INDEX_COMBINE(JECOPRMO)*/ '00' as Territorio, count(*) as c from JEC
OPRMO where ESOP_CO_ESTAD_OPRV = 'AN' AND NIES_CO_UNI_SERVICIO_1 = '00000143' AN
*/

— Dado parte del texto obtenemos el sqlid

COL SQL_TEXT FORMAT A100 WOR
COL MODULE FORMAT A30 WOR
COL column1 FORMAT A20 HEADING 'INST/CHILD/HASH'
SELECT INST_ID||' / '||CHILD_NUMBER||' / '||HASH_VALUE AS column1
,SQL_ID,substr(MODULE,0,20) AS "MODULE", SQL_TEXT, EXECUTIONS FROM GV$SQL WHERE SQL_TEXT LIKE '%&sql_text%'
and module is not null ORDER BY 1
/
/*
INST/CHILD/HASH sql_id MODULE SQL_TEXT Executions
——————– ————- —————– ———————————————————————- ———-

2 / 0 / 1006351236 cav0hcsxzrcw4 JDBC Thin Client select * from(select rownum as fila,/*+ INDEX_COMBINE(JECOPRMO)*/ t. 2
PEDI_NU_PEDIDO_C = '445767917116') where fila between 1
*/

— Obtenemos informacion de un determinado sqlid

COL elapsed_seg head 'Time per|Execution'
COL disk_io head 'Disk per|Execution'
COL buffer_io head 'Buffer per|Execution'
COL SQL_TEXT FORMAT A100 WOR
COL MODULE FORMAT A25

SELECT
INST_ID,SQL_ID,CHILD_NUMBER,PLAN_HASH_VALUE,
substr(MODULE,0,20) AS "MODULE",
ROUND((ELAPSED_TIME/executions)/1000000,2) as elapsed_seg,
ROUND(DISK_READS / executions) disk_io,
ROUND(BUFFER_GETS / executions) buffer_io,
EXECUTIONS FROM GV$SQL WHERE SQL_ID LIKE '%&sql_id%'
and module is not null
ORDER BY SQL_ID, EXECUTIONS DESC
/

/*
Time per Disk per Buffer per
INST_ID sql_id CHILD_NUMBER PLAN_HASH_VALUE MODULE Execution Execution Execution Executions
———- ————- ———— ————— ————————- ———- ———- ———- ———-
2 cav0hcsxzrcw4 0 2635065594 JDBC Thin Client 0 0 17 2
*/

— Cuando una sqlid no esta en la v$sql probamos en el repositorio de awr

SET LONG 10000
COL SQL_TEXT WOR
SET VERIFY OFF
SELECT SQL_ID, SQL_TEXT FROM DBA_HIST_SQLTEXT WHERE SQL_ID='&sql_id';

Enter value for sql_id: 6kha9sfy34bnd
/*
sql_id SQL_TEXT
————- —————————————————————————————————-
6kha9sfy34bnd begin
GetFecha();
entorno_unix.setFich('Salida.txt');
*/

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Crea un blog o un sitio web gratuitos con WordPress.com.

A %d blogueros les gusta esto: