El trace 10046 es un archivo de texto y trae más que tiempos: el texto de cada sentencia SQL con los valores escritos en ella, nombres del servidor y de la aplicación, rutas y, si usted los activa, los valores de bind. Esta página enumera lo que va en el archivo, lo que WaitScope guarda, lo que borra y qué comprobar antes de enviar.
Qué trae el trace
| Dato | Dónde está en el trace | En el informe |
|---|---|---|
| Ruta del archivo en el servidor | Encabezado, línea Trace file | Archivo en el servidor, en el Resumen |
| Versión de la base de datos, instancia y nombre del servidor | Encabezado: Oracle Database, Instance name, Node name | Sesión y entorno, en el Resumen |
| Sesión y proceso | *** SESSION ID y Unix process pid | Sesión y entorno |
| Servicio, módulo, acción y client_id | *** SERVICE NAME, *** MODULE NAME, *** ACTION NAME y *** CLIENT ID | Sesión y entorno |
| Texto de cada sentencia SQL, con los literales | Entre PARSING IN CURSOR y END OF STMT | Listas de sentencias y detalle de la sentencia, con la máscara de literales |
| Valores de bind | Bloques BINDS, solo con binds activados: nivel 4 o 12, o binds => true | No aparecen: WaitScope ignora esas líneas |
| Ids y nombres de objetos | obj# en las esperas; obj= y el nombre en la operación de las líneas STAT | Plan y Objetos con más tiempo de espera |
| Errores ORA | Líneas ERROR y PARSE ERROR | Sección Errores |
El trace de deadlock trae además, de cada sesión involucrada, el usuario de la base de datos, la máquina, el programa, el módulo, la acción, el SQL y la fila esperada, con el rowid, además de un volcado del estado del proceso. El informe muestra lo que lee de esas partes en la sección Deadlocks.
Lo que WaitScope guarda
- El resultado del análisis: tiempos, recuentos, el texto de cada sentencia tal como está en el trace (en la sentencia que suma variantes, el texto con
:sy:ny los literales de las variantes que más gastaron), los nombres del encabezado, los nombres de los objetos y las partes del deadlock que muestra el informe. - El nombre del archivo enviado: se convierte en el nombre del análisis en el Historial y en el título del informe, incluso en el HTML descargado.
- El tamaño y el número de líneas del archivo.
El resultado se conserva durante el plazo de retención, y solo su cuenta ve sus análisis: ningún otro usuario, ni siquiera el administrador de la consola (retención y privacidad). Los valores de bind no entran en el resultado.
Lo que se borra
- El trace sale del servidor en cuanto termina el análisis, listo o con error. No hay descarga del trace ni reprocesamiento: para analizarlo de nuevo, envíe el archivo otra vez.
- El envío a medias se borra cuando usted lo cancela, después de 24 horas sin un fragmento nuevo o cuando termina la sesión que hizo el envío, en el navegador o en la app.
- El análisis se borra cuando vence el plazo de retención, o antes, cuando usted lo elimina.
Qué comprobar antes de enviar
- Genérelo sin binds. Use el nivel 8 del 10046 o
binds => falseen DBMS_MONITOR. Si el archivo ya tiene bloquesBINDS, WaitScope no los usa, pero viajan en el archivo hasta que el análisis termina y el trace se borra. - Cambie el nombre del archivo. El nombre se convierte en el título del informe y aparece en el Historial y en el aviso de la app. Quítele nombres de clientes, de sistemas o de personas:
zz-lote-noturno.trcsirve. - Compruebe la máscara de literales. Viene activada y está en Mi cuenta, en el cuadro Privacidad de los informes; su nombre en la parte superior de la consola abre la página.
- Tenga en cuenta el encabezado. El nombre del servidor, la instancia, el servicio, el módulo, la acción, el client_id y la ruta del archivo aparecen en el informe tal como están: la máscara vale solo para el texto del SQL.
Máscara de literales
La máscara sustituye por *** el texto entre comillas y todo número usado como valor en el SQL, también en el GROUP BY, donde el número es un valor y no la posición de una columna. Solo el número de posición del ORDER BY, como en order by 2, queda como está. Vale para todo lo que usted ve: la página, el HTML y el JSON descargados, la API y la app. El análisis guardado conserva el texto original, y desmarcar las opciones muestra el SQL tal como vino en el trace.
En la sentencia que suma variantes, el texto ya aparece con :s y :n en lugar de los literales. La máscara oculta los literales de la tabla Variantes que más gastaron y también el SQL ID de cada variante, que llevaría de vuelta al texto con los valores.
Las sugerencias /*+ */, los nombres entre comillas dobles y los binds, como :1, quedan como están. Dentro de un comentario, el texto entre comillas y los números también se convierten en ***. Los detalles están en literales ocultos.
Adónde ir después
- Para generar el trace sin binds: activar el trace con DBMS_MONITOR o niveles del 10046.
- Para el plazo y el aislamiento entre cuentas: retención y privacidad.
- Para enviar: enviar desde el navegador.