martes, 25 de febrero de 2014

Oracle Como generar un reporte en tiempo real de sentencias SQL



Monitorizar las sentencias SQL activas es muy fácil mediante la consola EM:
Pestaña “Base de Datos” en la parte superior derecha y seleccionando “rendimiento” podemos observar un link denominado “Actividad de Sesión Superior”


Pero por distintas circunstancias este entorno puede no estar disponible y necesitemos esta información.  Como alternativa, podemos el reporte de actividad puede ser directamente producido desde la línea de comando de SQL Plus. A continuación se muestra un script que muestra la última sentencia monitorizada por Oracle
set trimspool on
set trim on
set pages 0
set linesize 1000
set long 1000000
set longchunksize 1000000
spool sqlmon_active.html
select dbms_sqltune.report_sql_monitor(type=>'active') from dual;
spool off
                                                 
Una vez ejecutada esta sentencia, nos creara en la ruta de OS desde la cual hemos lanzado el SQL Plus un fichero con nombre “sqlmon_active.html” que tendremos que editar y eliminar la primera y última línea (el documento ha de empezar con <html> y terminar con </html>)
Después podremos abrir el fichero desde cualquier navegador con acceso a internet para ver el resultado. De la información optenida, es importante el “SQL ID”, valor con el cual podemos obtener la sentencia SQL que se está ejecutando.


La sentencia para conocer la sentecioa SQL lanzada por un “SQL ID” es:
SQL> select sql_text from v$sql where sql_id = '5jr7p6dqdxq9a';

No hay comentarios:

Publicar un comentario