Trazabilidad de Aplicaciones en Adaptive Server Enterprise
Enviado por Helena • 24 de Marzo de 2018 • 3.186 Palabras (13 Páginas) • 410 Visitas
...
- set show_sqltext on | off (ver la sección 4.1)
- set showplan on | off
- set statistics io on | off
- set statistics time on | off
- set statistics plancost on | off
- Todos los sub-comandos set option. Para enumerar algunos:
- set option show normal | brief | long | on | off
- set option show_lop normal | brief | long | on | off
- set option show_managers normal | brief | long | on | off
- set option show_log_props normal | brief | long | on | off
- set option show_parallel normal | brief | long | on | off
- set option show_histograms normal | brief | long | on | off
- set option show_abstract_plan normal | brief | long | on | off
- set option show_search_engine normal | brief | long | on | off
- set option show_counters normal | brief | long | on | off
- set option show_best_plan normal | brief | long | on | off
- set option show_code_gen normal | brief | long | on | off
- set option show_pio_costing normal | brief | long | on | off
- set option show_lio_costing normal | brief | long | on | off
- set option show_elimination normal | brief | long | on | off
A continuación se enumeran algunas opciones set cuya salida no es capturada por la opción de trazabilidad de aplicaciones. Estos comandos tienen efecto sobre los resultados o el plan de la consulta.
- set rowcount valor
- set forceplan on | off
- set plan optgoal allrows_mix | allrows_dss
La salida de todos los “trace flags” activados a través del comando dbcc traceon también queda capturada en el archivo de salida, al ser habilitados bajo el contexto del componentes de trazabilidad de aplicaciones.
Nota: La salida de los “trace flags” activados a través del comando dbcc traceon siempre queda capturada y no requiere activar los “trace flags” 3604 ni 3605. En caso de que estos “trace flags” se activen, no afectarán el formato de la salida del monitoreo.
4.1 Cómo Monitorear el Texto SQL
Sybase ASE 15.0.2 incorpora el nuevo comando set show_sqltext que puede ser usado para ver el texto SQL de consultas, procedimientos almacenados, cursores y sentencias preparadas dinámicamente. Este comando es muy útil para depurar aplicaciones y debería ser siempre usado en conjunto con el comando set tracefile. Ésta es la sintaxis del comando:
set show_sqltext on | off
En un contexto de monitoreo de aplicaciones, la presencia del texto SQL al inicio de la salida es muy requerida, sobre todo cuando monitoreamos otra sesión. Sin el texto SQL, sería bastante complicado correlacionar la salida del monitoreo (showplan, statistics io, etc.), con su sentencia SQL correspondiente.
Adicionalmente, éste comando también muestra una estampa de tiempo antes de cada texto SQL mostrado. Muestra la fecha y hora actuales, con una exactitud de hasta 10 milisegundos. Esta “huella digital” es muy útil al investigar la secuencia de comandos usada por una aplicación cliente. Específicamente ayuda a calcular demoras entre dos puntos de interés durante la ejecución de una aplicación y también permite asociar eventos a nivel de aplicación del archivo de salida, con eventos a nivel del servidor, registrados en el log de errores de ASE.
Nota: El comando set show_sqltext también puede ser usado fuera del contexto del comando set tracefile. En éste caso, éste comando sólo trabajará para la sesión actual.
Una vez habilitada, ésta interfaz arroja lo siguiente al archivo de salida:
- En el caso de una consulta SQL, el texto de la sentencia SQL, precedido por la estampa de tiempo. Por ejemplo, select count(*) from sysobjects muestra:
2007/06/20 22:51:35.46
SQL Text: select count(*) from sysobjects
- En el caso de un procedimiento almacenado, muestra el nombre del procedimiento almacenado principal y el número de línea para sentencias SQL, y el texto SQL para sentencias exec(). La estampa de tiempo sólo se muestra una vez, al inicio. Por ejemplo, sp_who muestra:
2007/06/20 22:44:47.67
SQL Text: sp_who
Sproc: sp_who, Line: 0
Sproc: sp_who, Line: 20
. . .
Sproc: sp_autoformat, Line: 163
. . .
Sproc: sp_autoformat, Line: 211
. . .
SQL Text: UPDATE #colinfo_af SET maxlength=(SELECT isnull(max(char_length(status)),1) FROM #who1result ), autoformat = 1, mbyte = case when usertype in (24, 25, 34, 35) then 1 else 0 end WHERE colname='status'
. . .
Sproc: sp_who, Line: 67
Sproc: sp_who, Line: 69
- En el caso de sentencias preparadas dinámicamente, muestra la sentencia que crea un procedimiento liviano o “light weight stored procedure” durante la fase de preparación y muestra el nombre de la sentencia preparada con el texto de la sentencia, durante la ejecución. La estampa de tiempo va antes de la sentencia SQL, en ambos casos.
Por ejemplo, EXEC SQL PREPARE select_statement FROM :m_sqlstring; muestra:
2007/01/10 05:21:12.39
SQL Text: create proc select_statement as SELECT title FROM titles where title_id = 'TC4203'
EXEC SQL EXECUTE select_statement INTO :m_title; muestra:
2007/01/10 05:21:22.33
Prepared Statement: select_statement, SQL Text: SELECT title FROM titles where title_id = 'TC4203'
-
...