Traza de peticiones SQL Server 

Introducción

Esta herramienta es accesible desde cualquier pantalla de la aplicación si la base de datos empleada es SQL Server™, a través del menú Herramientas situado en la parte superior de la pantalla, que contiene las dos opciones siguientes:

Activación traza SQL Server

Esta función permite a través de la funcionalidad de traza en SQL Server, activar el registro de eventos en la base dentro de un fichero, eventos que podrán más adelante ser analizados.

Desactivación traza

Esta función lanza el nuevo tratamiento del fichero de traza obtenido por la activación y después la visualización del resultado. Esto permite ver todas las órdenes SQL ejecutadas durante la activación.

Requisitos previos

Habilitación

El usuario debe ser autorizado para utilizar el debugger (parámetro DBG).

Limitaciones técnicas

La función no puede funcionar si un servidor de tratamiento está instalado y está activo en la máquina de la base de datos.

Interface usuario

Cuando se lanza la función, una pantalla permite capturar un conjunto de opciones:

Recuperación de los resultados

Hay que indicar qué informaciones van a ser recogidas para análisis.

La opción Estándar permite recuperar los planes de ejecución de las peticiones

La opción Tuning permite recuperar informaciones en las acciones SQL ejecutadas así como los planes de ejecución de las peticiones.

El usuario puede también escoger él mismo los eventos a recoger en "Parametrización eventos avanzada". La ventana correspondiente permitirá escoger todas las opciones posibles.

Estos eventos se reagrupan por tipo. Para más información sobre los eventos, hay que buscar en la documentación Sql Server; hay un extracto anexo.

Opciones de selección

Por defecto, las órdenes SQL están detalladas por orden cronológico, pero es posible precisar opciones de selección.

Se proponen diversas opciones de selección; la primera es la de las órdenes que correspondan al coste más importante según la selección solicitada.

Presentación de resultados

El usuario puede escoger no mostrar en la lista más que un número determinado de registros.

En caso de haber escogido una selección, obtendrá los "n" primeros eventos pasados a la base de datos que corresponden al coste más importante de esta selección.

Uso de la traza obtenida

Se puede ver la duración resultante de la ejecución de las peticiones y acciones SQL (obtenida en un evento "Completed")

Cuando se obtiene un coste para estas acciones, se puede ver si la petición es útil y si emplea bien los índices.

En este caso no habría que encontrar Table Scan

En este caso no habría que encontrar Constant Scan

Cuando se encuentra el uso de un índice (Index Seek), hay que verificar que se utilizan al máximo las columnas del índice (en la parte "SEEK:")

Extracto de la documentación SQL Server

Este cuadro muestra los eventos que pueden añadirse o mostrarse de una traza.

Numero del evento


Nombre del evento


Descripción

0-9

Reserved

 

10

RPC:Completed

Se produce cuando se termina una activación de procedimiento a distancia (RPC).

11

RPC:Starting

Se produce cuando se inicia la activación de un procedimiento a distancia.

12

SQL:BatchCompleted

Se produce cuando se termina un lote de instrucciones Transact-SQL.

13

SQL:BatchStarting

Se produce cuando se arranca un lote de instrucciones Transact-SQL.

14

Login:

Se produce cuando un usuario logra conectarse a un SQL Server.

15

Logout

Se produce cuando un usuario se desconecta de SQL Server.

16

Observación:

Se produce a la vez que los eventos de aviso, como por ejemplo las peticiones de interrupción del cliente o las rupturas de conexión del cliente.

17

ExistingConnection

Detecta todas las actividades de los usuarios conectados al SQL Server antes del arranque de la traza.

18

ServiceControl

Se produce cuando se modifica el estado de los servicios de SQL Server.

19

DTCTransaction

Traza las transacciones cordinadas por Microsoft Distibuted Transaction Coordinator (MS DTC) entre dos o más bases de datos.

20

Login Failed

Indica que se ha producido un fallo en la tentativa de conexión a SQL Server desde un cliente.

21

EventLog

Indica que los eventos ha sido consignado en el diario de aplicaciones de Microsoft Windows NT®.

22

ErrorLog

Indica que los eventos de error se han consignado al diario de errores de SQL Server.

23

Lock:Release

Indica que se ha desbloqueado un recurso, una página por ejemplo.

24

Lock:Acquire

Indica que se ha producido un bloqueo en un recurso, una página de datos por ejemplo.

25

Lock:Deadlock

Indica que dos transacciones competidoras han generado un interbloqueo; cuando una ha intentado obtener los bloqueos incompatibles en recursos que pertenecen a la otra.

26

Lock:Canceled

Indica que la adquisición de un bloqueo para un recursos se ha anulado (por ejemplo por un interbloqueo).

27

Lock:Timeout

Indica que una solicitud de bloqueo sobre un recurso (por ejemplo, una página) ha superado el plazo de espera porque una transacción retiene un bloqueo sobre el recurso requerido. El plazo de espera lo determina la función @@LOCK_TIMEOUT y puede definirlo a ayuda de la instrucción SET LOCK_TIMEOUT.

28

DOP Event

Se produce antes de la ejecución de una instrucción SELECT, INSERT o UPDATE.

29-31

Reserved

Utiliza sobre todo el evento 28.

32

Reserved

 

33

Excepción

Indica que se ha producido una excepción en SQL Server.

34

SP:CacheMiss

Indica que un procedimiento almacenado no puede encontrarse en el caché de procedimientos.

35

SP:CacheInsert

Indica que se ha insertado un elemento en el caché de procedimientos.

36

SP:CacheRemove

Indica que se ha suprimido un elemento en el caché de procedimientos.

37

SP:Recompile

Indica que se ha recopilado un procedimiento almacenado.

38

SP:CacheHit

Indica que un procedimiento almacenado se encuentr en el caché de procedimientos.

39

SP:ExecContextHit

Indica cuando la versión de ejecución de un procedimiento alamcenado se ha encontrado en el caché.

40

SQL:StmtStarting

Se produce cuando la instrucción Transact-SQL ha arrancado.

41

SQL:StmtCompleted

Se produce cuando finaliza la instrucción de la Transact-SQL.

42

SP:Starting

Indica que el procedimiento almacenado ha arrancado.

43

SP:Completed

Indica que el procedimiento almacenado ha terminado.

44

Reserved

Utiliza sobre todo el evento 40.

45

Reserved

Utiliza sobre todo el evento 41.

46

Objetct:Created

Indica que se ha creado un objeto, por ejemplo con las instrucciones CREATE INDEX, CREATE TABLE y CREATE DATABASE.

47

Objetct:Deleted

Indica que se ha suprimido un objeto, por ejemplo con las instrucciones DROP INDEX y DROP TABLE.

48

Reserved

 

49

Reserved

 

50

SQL Transaction

Traza las instrucciones Transact-SQL BEGIN, COMMIT, SAVE y ROLLBACK TRANSACTION.

51

Scan:Started

Indica que ha arrancado un análisis de tabla o de índice.

52

Scan:Stopped

Indica que ha terminado un análisis de tabla o de índice.

53

CursorOpen

Indica que se ha abierto un cursor en una instrucción Transact-SQL par ODBC, OLE DB o DB-Library.

54

Transaction Log

Traza en qué momento se escriben las transacciones en el diario de transacciones.

55

HashWarning

Indica que se ha producido una operación de Hash (hash joint, hash add, hash union, hash distintivo) que no está en curso en un sello de partición, se torna en un plan de recambiio. Esto es debido a la profundidad de la recurrencia, al intervalo de los datos, de los indicadores de traza o al contaje de los bits.

56-57

Reserved

 

58

Auto Update Stats

Indica que se ha producido una actualización automática de las estadísticas de índice.

59

Lock:Deadlock Chain

Producto para cada uno de los eventos que producen el boqueo.

60

Lock:Escalation

Se produce cuando se adquiere la extensión total de los bloqueos. Ejemplo: bloque de línea aumentada o convertida en bloqueo de página.

61

OLE DB Errors

Indica que se ha producido un error OLE DB.

62-66

Reserved

 

67

ExecutionWarnings

Indica que los mensajes de aviso que aparecen durante la ejecución de una instrucción o de un procedimiento almacenado SQL Server.

68

Execution Plan

Muestra el esquema del plan de la instrucción SQL ejecutada.

69

Sort Warnings

Indica que las operaciones de selección no pueden efectuarse en memoria. No incluye las operaciones de selección que incluyen la creación de índices, sino sólo las operaciones de selección dentro de una petición (una cláusula ORDER BY en una orden SELECT, por ejemplo).

70

CursorPrepare

Indica que se ha preparado un cursor en una instrucción Transact-SQL para ser utilizado por ODBC, OLE DB o DB-Library.

71

Prepare SQL

ODBC, OLE DB o DB-Library preparan una o varias instrucciones Transact-SQL a utilizar.

72

Exec Prepared SQL

ODBC, OLE DB o DB-Library ejecutan una o varias instrucciones preparadasTransact-SQL.

73

Unprepare SQL

ODBC, OLE DB o DB-Library anulan una o varias instrucciones preparadasTransact-SQL.

74

CursorExecute

Se ha ejecutado un cursor preparado con anterioridad en una instrucción Transact-SQL par ODBC, OLE DB o DB-Library.

75

CursorRecompile

Se ha recompilado un cursor abierto en una instrucción Transact-SQL par ODBC o DB-Library directamente por un cambio en el esquema.

Activado para los cursores ANSI y no-ANSI.

76

CursorImplicitConversion

Un cursor en una instrucción Transact-SQL se convierte por SQL Server en uno de otro tipo.

Activado para los cursores ANSI y no-ANSI.

77

CursorUnprepare

Se ha anulado un cursor preparado con anterioridad en una instrucción Transact-SQL par ODBC, OLE DB o DB-Library.

78

CursorClose

Se ha cerrado un cursor abierto con anterioridad en una instrucción Transact-SQL par ODBC, OLE DB o DB-Library.

79

Missing Column Statistics

No están disponibles las estadísticas de columna que podrían haber sido útiles para el optimizador.

80

Missing Join Predicate

Una petición sin predicado de joint está en curso de ejecución. Esto puede hacer que la petición tarde más en ejecutarse.

81

Server Memory Change

El uso de la memoria de Microsoft SQL Server aumenta y dismunuye, bien en 1 mega-octeto (Mo), bien el 5% del máximo de la memoria, según cual sea la más grande.

82-91

User Configurable (0 -9)

Datos de eventos definidos por usuario.

92

Data File Auto Grow

Indica que el servidor ha aumentado un fichero de diario automáticamente.

93

Log File Auto Grow

Indica que el servidor ha aumentado un fichero de diario automáticamente.

94

Data File Auto Shrink

Indica que el servidor ha reducido un fichero de diario automáticamente.

95

Log File Auto Shrink

Indica que el servidor ha reducido un fichero de diario automáticamente.

96

Show Plan Text

Muestra el esquema del plan de petición de la instrucción SQL a partir del optimizador de petición.

97

Show Plan ALL

Muestra el plan de peticiones con los detalles completos de la compilación de la instrucción SQL en curso de ejecución.

98

Show Plan Statistics

Muestra el plan de peticiones con los detalles completos de la ejecución de la instrucción SQL en curso.

99

Reserved

 

100

RPC Output Parameter

Produce los valores de salida de los parámetros para todos los RPC.

101

Reserved

 

102

Audit Statement GDR

Se produce cada vez que GRANT, DENY o REVOKE lo emite un usuario para una autorización de instrucción en SQL Server.

103

Audit Object GDR

Se produce cada vez que GRANT, DENY o REVOKE lo emite un usuario para una autorización de objeto en SQL Server.

104

Audit Add/Drop Login

Se produce cuando una conexión de acceso SQL Server se añade o se suprime; para sp_addlogin y sp_droplogin.

105

Audit Login GDR

Se produce cuando un derecho de conexión Microsoft Windows® se añade o se suprime; para sp_grantlogin, sp_revokelogin y sp_denylogin.

106

Audit Login Change Property

Se produce cuando se modifica una propiedad de conexión de acceso, excepto para las contraseñas; para sp_defaultdb y sp_defaultlanguage.

107

Audit Login Change Password

Se produce cuando se modifica la contraseña de una conexión de acceso SQL Server.

Las contraseñas no son se registran.

108

Audit Add Login to Server Role

Se produce cuando se añade o se suprime una conexión de accesodel rol del servidor fijo; para sp_addsrvrolemember y sp_dropsrvrolemember.

109

Audit Add DB User

Se produce cuando se añade o se suprime una conexión de acceso de un usuario de la base de datos (Windows o SQL Server); para sp_grantdbaccess, sp_revokedbaccess, sp_adduser y sp_dropuser.

110

Audit Add Member to DB

Se produce cuando se añade o se suprime una conexión de acceso de un usuario de la base de datos (fijo o definido por el usuario); para sp_addrolemember, sp_droprolemember et sp_changegroup.

111

Audit Add/Drop Role

Se produce cuando se añade o se suprime una conexión de acceso de un usuario de la base de datos; para sp_addrole et sp_droprole.

112

App Role Pass Change

Se produce cuando se modifica la contraseña de un rol de aplicación.

113

Audit Statement Permission

Se produce cuando se usa una autorización de instrucción (por ejemplo, CREATE TABLE).

114

Audit Object Permission

Se produce cuando se usa una autorización de un objeto (por ejemplo, SELECT), tanto si se logra como si no.

115

Audit Backup/Restore

Se produce cuando se emite una orden BACKUP ou RESTORE.

116

Audit DBCC

Se produce cuando se emiten las órdenes DBCC.

117

Audit Change Audit

Se produce cuando se efectúan modificaciones de traza de auditoría.

118

Audit Object Derived Permission

Se produce cuando se emiten comandos de objetos CREATE, ALTER y DROP.

Errores

Además de los mensajes genéricos, los mensajes siguientes de error pueden aparecer durante la captura :

"Error en el acceso al servidor de la base de datos"

El acceso a la máquina de la base de datos no es posible, no hay servidor de tratamiento o no arranca.

"Error de acceso al repertorio de trazas de la base de datos"

El directorio indicado como directorio de trazas no es accesible