Job para una TRAZA

02/01/2006 - 18:51 por Wilson R. Rico Camargo | Informe spam
Tengo las sentencias SQL para crear una traza y lanzarla sin necesidad de
tener la herramienta "Profiler" abierta pero como funciona el ciclo y cada
cuanto ejecutara este evento. O es que este procedimiento queda ejecutandose
solo una vez se ejecuta y si es asi como lo detengo.

Adicionalmente no encuentro como enviarlo a una tabla.


Cordialmente,


Wilson R. Rico Camargo
BBVA Seguros
Bogotá - Colombia
wilson.rico@bbvaseguros.com.co
(Oficina (571) 2191100 Ext. 1140
Móvil 300-2076572: Mensajes instantáneos
Visite www.bbvaseguros.com.co

Preguntas similare

Leer las respuestas

#1 Isaias
02/01/2006 - 18:00 | Informe spam
Hola Wilson

En esta pagina, se mencionan todas las funcione que te sirven para crear
trazas, detenerlas (destuirlas), enviarlas a una tabla, etc.

http://vyaskn.tripod.com/server_sid...server.htm

Espero te sea de utilidad.
Saludos
IIslas


"Wilson R. Rico Camargo" escribió:

Tengo las sentencias SQL para crear una traza y lanzarla sin necesidad de
tener la herramienta "Profiler" abierta pero como funciona el ciclo y cada
cuanto ejecutara este evento. O es que este procedimiento queda ejecutandose
solo una vez se ejecuta y si es asi como lo detengo.

Adicionalmente no encuentro como enviarlo a una tabla.


Cordialmente,


Wilson R. Rico Camargo
BBVA Seguros
Bogotá - Colombia

(Oficina (571) 2191100 Ext. 1140
Móvil 300-2076572: Mensajes instantáneos
Visite www.bbvaseguros.com.co



Respuesta Responder a este mensaje
#2 Miguel Egea
02/01/2006 - 21:00 | Informe spam
Básicamente Profiler es una herramienta cliente de SQLTrace que es la que
captura esos eventos en el servidor. Cuando creas una traza puedes
especificar no oslo la fecha de inicio, también la de final y el tamaño
máximo de fichero que tomarás etc. Hay udf's que ayudan a tratar luego ese
fichero para convertirlo en tabla etc. Las trazas responde a eventos, por
tanto cazan todo absolutamente todo , a menos que hayan demasiados eventos y
no puedan atender todo el trabajo.


Miguel Egea
Visita mi web http://www.portalsql.com
SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com
"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"

"Wilson R. Rico Camargo" wrote in message
news:
Tengo las sentencias SQL para crear una traza y lanzarla sin necesidad de
tener la herramienta "Profiler" abierta pero como funciona el ciclo y cada
cuanto ejecutara este evento. O es que este procedimiento queda
ejecutandose solo una vez se ejecuta y si es asi como lo detengo.

Adicionalmente no encuentro como enviarlo a una tabla.


Cordialmente,


Wilson R. Rico Camargo
BBVA Seguros
Bogotá - Colombia

(Oficina (571) 2191100 Ext. 1140
Móvil 300-2076572: Mensajes instantáneos
Visite www.bbvaseguros.com.co

Respuesta Responder a este mensaje
#3 Guillermo Roldan
03/01/2006 - 07:51 | Informe spam
Hola Wilson,

Yo tengo preparados varios procedimientos almacenados para la ejecución de
trazas (un procedimiento por traza). Dichos procedimientos, los ejecuto desde
el Agente de SQL Server mediante un Job, teniendo en cuenta que siempre los
arranco en el mismo orden y en dos ocasiones:
- Todos los días a las 7:00
- Al arrancar SQL Server

Mis procedimientos, generan ficheros de traza, que al final de cada día son
transformados a tablas utilizando ::fn_trace_gettable() mediante un VBScript
lanzado desde SQL Server Agent, y a continuación junto todas las trazas en
una varias tablas históricas, que sirven de tabla de hechos para varios cubos
de Analysis Services para atacar desde Microsoft Excel. Se me olvido decirte
que paro todas las trazas a las 19:00 horas, pues mi preocupación es el
online, pues la ventana Batch me resulta más que suficiente.

Todo esto cuando está funcionando es comodísimos. Todas las mañanas, abro un
par de hojas de Excel, donde en cada pestaña tengo una vista diferente de los
datos, y rápidamente encuentro intentos de conexión de sa, intentos fallidos
de inicios de sesión, consumos exagerados de CPU por algún usuario en alguna
BBDD en algún momento del día, previsiones de crecimiento de consumo por base
de datos, etc.

Saludos,
Guillermo

PD: Te anexo el código de uno de los stored procedures, por si te resulta
útil.

CREATE PROCEDURE trazaAccesos AS

declare @rc int
declare @TraceID int
declare @maxfilesize bigint
declare @fichero nvarchar(250)

set @maxfilesize = 50

set @fichero = 'E:\sqlserver\MSSQL\Trazas\accesos_' +
CAST(YEAR(GETDATE()) AS VARCHAR) +
RIGHT('0' + CAST(MONTH(GETDATE()) AS VARCHAR), 2) +
RIGHT('0' + CAST(DAY(GETDATE()) AS VARCHAR), 2) + '_' +
RIGHT('0' + DATENAME(hh, GETDATE()), 2) +
RIGHT('0' + DATENAME(mi, GETDATE()), 2) +
RIGHT('0' + DATENAME(ss, GETDATE()), 2)


***************************************************************************************
***
exista la traza, ***
***
***************************************************************************************
exec sp_trace_setstatus 1, 0 -- *** Detener
exec sp_trace_setstatus 1, 2 -- *** Eliminar Definición de la Traza


exec @rc = sp_trace_create @TraceID output, 2, @fichero, @maxfilesize, NULL
if (@rc != 0) goto error

declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 14, 3, @on
exec sp_trace_setevent @TraceID, 14, 6, @on
exec sp_trace_setevent @TraceID, 14, 8, @on
exec sp_trace_setevent @TraceID, 14, 10, @on
exec sp_trace_setevent @TraceID, 14, 11, @on
exec sp_trace_setevent @TraceID, 14, 12, @on
exec sp_trace_setevent @TraceID, 14, 13, @on
exec sp_trace_setevent @TraceID, 14, 14, @on
exec sp_trace_setevent @TraceID, 14, 15, @on
exec sp_trace_setevent @TraceID, 14, 16, @on
exec sp_trace_setevent @TraceID, 14, 17, @on
exec sp_trace_setevent @TraceID, 14, 18, @on
exec sp_trace_setevent @TraceID, 14, 26, @on

exec sp_trace_setevent @TraceID, 20, 3, @on
exec sp_trace_setevent @TraceID, 20, 6, @on
exec sp_trace_setevent @TraceID, 20, 8, @on
exec sp_trace_setevent @TraceID, 20, 10, @on
exec sp_trace_setevent @TraceID, 20, 11, @on
exec sp_trace_setevent @TraceID, 20, 12, @on
exec sp_trace_setevent @TraceID, 20, 13, @on
exec sp_trace_setevent @TraceID, 20, 14, @on
exec sp_trace_setevent @TraceID, 20, 15, @on
exec sp_trace_setevent @TraceID, 20, 16, @on
exec sp_trace_setevent @TraceID, 20, 17, @on
exec sp_trace_setevent @TraceID, 20, 18, @on
exec sp_trace_setevent @TraceID, 20, 26, @on


declare @intfilter int
declare @bigintfilter bigint

exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Profiler'
las trazas
así como intentos fallidos de conexión !!


exec sp_trace_setstatus @TraceID, 1


select TraceID=@TraceID
goto finish

error:
select ErrorCode=@rc

finish:
GO


"Wilson R. Rico Camargo" wrote:

Tengo las sentencias SQL para crear una traza y lanzarla sin necesidad de
tener la herramienta "Profiler" abierta pero como funciona el ciclo y cada
cuanto ejecutara este evento. O es que este procedimiento queda ejecutandose
solo una vez se ejecuta y si es asi como lo detengo.

Adicionalmente no encuentro como enviarlo a una tabla.


Cordialmente,


Wilson R. Rico Camargo
BBVA Seguros
Bogotá - Colombia

(Oficina (571) 2191100 Ext. 1140
Móvil 300-2076572: Mensajes instantáneos
Visite www.bbvaseguros.com.co



Respuesta Responder a este mensaje
#4 Wilson R. Rico Camargo
03/01/2006 - 17:02 | Informe spam
Gracias esta interesante el procedimiento.


Cordialmente,


Wilson R. Rico Camargo
BBVA Seguros
Bogotá - Colombia

(Oficina (571) 2191100 Ext. 1140
Móvil 300-2076572: Mensajes instantáneos
Visite www.bbvaseguros.com.co



"Guillermo Roldan" escribió en
el mensaje news:
Hola Wilson,

Yo tengo preparados varios procedimientos almacenados para la ejecución de
trazas (un procedimiento por traza). Dichos procedimientos, los ejecuto
desde
el Agente de SQL Server mediante un Job, teniendo en cuenta que siempre
los
arranco en el mismo orden y en dos ocasiones:
- Todos los días a las 7:00
- Al arrancar SQL Server

Mis procedimientos, generan ficheros de traza, que al final de cada día
son
transformados a tablas utilizando ::fn_trace_gettable() mediante un
VBScript
lanzado desde SQL Server Agent, y a continuación junto todas las trazas en
una varias tablas históricas, que sirven de tabla de hechos para varios
cubos
de Analysis Services para atacar desde Microsoft Excel. Se me olvido
decirte
que paro todas las trazas a las 19:00 horas, pues mi preocupación es el
online, pues la ventana Batch me resulta más que suficiente.

Todo esto cuando está funcionando es comodísimos. Todas las mañanas, abro
un
par de hojas de Excel, donde en cada pestaña tengo una vista diferente de
los
datos, y rápidamente encuentro intentos de conexión de sa, intentos
fallidos
de inicios de sesión, consumos exagerados de CPU por algún usuario en
alguna
BBDD en algún momento del día, previsiones de crecimiento de consumo por
base
de datos, etc.

Saludos,
Guillermo

PD: Te anexo el código de uno de los stored procedures, por si te resulta
útil.

CREATE PROCEDURE trazaAccesos AS

declare @rc int
declare @TraceID int
declare @maxfilesize bigint
declare @fichero nvarchar(250)

set @maxfilesize = 50

set @fichero = 'E:\sqlserver\MSSQL\Trazas\accesos_' +
CAST(YEAR(GETDATE()) AS VARCHAR) +
RIGHT('0' + CAST(MONTH(GETDATE()) AS VARCHAR), 2) +
RIGHT('0' + CAST(DAY(GETDATE()) AS VARCHAR), 2) + '_' +
RIGHT('0' + DATENAME(hh, GETDATE()), 2) +
RIGHT('0' + DATENAME(mi, GETDATE()), 2) +
RIGHT('0' + DATENAME(ss, GETDATE()), 2)


***************************************************************************************
***
exista la traza, ***
***
***************************************************************************************
exec sp_trace_setstatus 1, 0 -- *** Detener
exec sp_trace_setstatus 1, 2 -- *** Eliminar Definición de la Traza


exec @rc = sp_trace_create @TraceID output, 2, @fichero, @maxfilesize,
NULL
if (@rc != 0) goto error

declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 14, 3, @on
exec sp_trace_setevent @TraceID, 14, 6, @on
exec sp_trace_setevent @TraceID, 14, 8, @on
exec sp_trace_setevent @TraceID, 14, 10, @on
exec sp_trace_setevent @TraceID, 14, 11, @on
exec sp_trace_setevent @TraceID, 14, 12, @on
exec sp_trace_setevent @TraceID, 14, 13, @on
exec sp_trace_setevent @TraceID, 14, 14, @on
exec sp_trace_setevent @TraceID, 14, 15, @on
exec sp_trace_setevent @TraceID, 14, 16, @on
exec sp_trace_setevent @TraceID, 14, 17, @on
exec sp_trace_setevent @TraceID, 14, 18, @on
exec sp_trace_setevent @TraceID, 14, 26, @on

exec sp_trace_setevent @TraceID, 20, 3, @on
exec sp_trace_setevent @TraceID, 20, 6, @on
exec sp_trace_setevent @TraceID, 20, 8, @on
exec sp_trace_setevent @TraceID, 20, 10, @on
exec sp_trace_setevent @TraceID, 20, 11, @on
exec sp_trace_setevent @TraceID, 20, 12, @on
exec sp_trace_setevent @TraceID, 20, 13, @on
exec sp_trace_setevent @TraceID, 20, 14, @on
exec sp_trace_setevent @TraceID, 20, 15, @on
exec sp_trace_setevent @TraceID, 20, 16, @on
exec sp_trace_setevent @TraceID, 20, 17, @on
exec sp_trace_setevent @TraceID, 20, 18, @on
exec sp_trace_setevent @TraceID, 20, 26, @on


declare @intfilter int
declare @bigintfilter bigint

trazas
exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Profiler'
las trazas
así como intentos fallidos de conexión !!


exec sp_trace_setstatus @TraceID, 1


select TraceID=@TraceID
goto finish

error:
select ErrorCode=@rc

finish:
GO


"Wilson R. Rico Camargo" wrote:

Tengo las sentencias SQL para crear una traza y lanzarla sin necesidad de
tener la herramienta "Profiler" abierta pero como funciona el ciclo y
cada
cuanto ejecutara este evento. O es que este procedimiento queda
ejecutandose
solo una vez se ejecuta y si es asi como lo detengo.

Adicionalmente no encuentro como enviarlo a una tabla.


Cordialmente,


Wilson R. Rico Camargo
BBVA Seguros
Bogotá - Colombia

(Oficina (571) 2191100 Ext. 1140
Móvil 300-2076572: Mensajes instantáneos
Visite www.bbvaseguros.com.co



Respuesta Responder a este mensaje
#5 Wilson R. Rico Camargo
03/01/2006 - 18:18 | Informe spam
Pero el Job que ejecutas a las 7 AM cada cuanto se ejecuta o solo el job se
corre una vez y listo


Cordialmente,


Wilson R. Rico Camargo
BBVA Seguros
Bogotá - Colombia

(Oficina (571) 2191100 Ext. 1140
Móvil 300-2076572: Mensajes instantáneos
Visite www.bbvaseguros.com.co


"Guillermo Roldan" escribió en
el mensaje news:
Hola Wilson,

Yo tengo preparados varios procedimientos almacenados para la ejecución de
trazas (un procedimiento por traza). Dichos procedimientos, los ejecuto
desde
el Agente de SQL Server mediante un Job, teniendo en cuenta que siempre
los
arranco en el mismo orden y en dos ocasiones:
- Todos los días a las 7:00
- Al arrancar SQL Server

Mis procedimientos, generan ficheros de traza, que al final de cada día
son
transformados a tablas utilizando ::fn_trace_gettable() mediante un
VBScript
lanzado desde SQL Server Agent, y a continuación junto todas las trazas en
una varias tablas históricas, que sirven de tabla de hechos para varios
cubos
de Analysis Services para atacar desde Microsoft Excel. Se me olvido
decirte
que paro todas las trazas a las 19:00 horas, pues mi preocupación es el
online, pues la ventana Batch me resulta más que suficiente.

Todo esto cuando está funcionando es comodísimos. Todas las mañanas, abro
un
par de hojas de Excel, donde en cada pestaña tengo una vista diferente de
los
datos, y rápidamente encuentro intentos de conexión de sa, intentos
fallidos
de inicios de sesión, consumos exagerados de CPU por algún usuario en
alguna
BBDD en algún momento del día, previsiones de crecimiento de consumo por
base
de datos, etc.

Saludos,
Guillermo

PD: Te anexo el código de uno de los stored procedures, por si te resulta
útil.

CREATE PROCEDURE trazaAccesos AS

declare @rc int
declare @TraceID int
declare @maxfilesize bigint
declare @fichero nvarchar(250)

set @maxfilesize = 50

set @fichero = 'E:\sqlserver\MSSQL\Trazas\accesos_' +
CAST(YEAR(GETDATE()) AS VARCHAR) +
RIGHT('0' + CAST(MONTH(GETDATE()) AS VARCHAR), 2) +
RIGHT('0' + CAST(DAY(GETDATE()) AS VARCHAR), 2) + '_' +
RIGHT('0' + DATENAME(hh, GETDATE()), 2) +
RIGHT('0' + DATENAME(mi, GETDATE()), 2) +
RIGHT('0' + DATENAME(ss, GETDATE()), 2)


***************************************************************************************
***
exista la traza, ***
***
***************************************************************************************
exec sp_trace_setstatus 1, 0 -- *** Detener
exec sp_trace_setstatus 1, 2 -- *** Eliminar Definición de la Traza


exec @rc = sp_trace_create @TraceID output, 2, @fichero, @maxfilesize,
NULL
if (@rc != 0) goto error

declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 14, 3, @on
exec sp_trace_setevent @TraceID, 14, 6, @on
exec sp_trace_setevent @TraceID, 14, 8, @on
exec sp_trace_setevent @TraceID, 14, 10, @on
exec sp_trace_setevent @TraceID, 14, 11, @on
exec sp_trace_setevent @TraceID, 14, 12, @on
exec sp_trace_setevent @TraceID, 14, 13, @on
exec sp_trace_setevent @TraceID, 14, 14, @on
exec sp_trace_setevent @TraceID, 14, 15, @on
exec sp_trace_setevent @TraceID, 14, 16, @on
exec sp_trace_setevent @TraceID, 14, 17, @on
exec sp_trace_setevent @TraceID, 14, 18, @on
exec sp_trace_setevent @TraceID, 14, 26, @on

exec sp_trace_setevent @TraceID, 20, 3, @on
exec sp_trace_setevent @TraceID, 20, 6, @on
exec sp_trace_setevent @TraceID, 20, 8, @on
exec sp_trace_setevent @TraceID, 20, 10, @on
exec sp_trace_setevent @TraceID, 20, 11, @on
exec sp_trace_setevent @TraceID, 20, 12, @on
exec sp_trace_setevent @TraceID, 20, 13, @on
exec sp_trace_setevent @TraceID, 20, 14, @on
exec sp_trace_setevent @TraceID, 20, 15, @on
exec sp_trace_setevent @TraceID, 20, 16, @on
exec sp_trace_setevent @TraceID, 20, 17, @on
exec sp_trace_setevent @TraceID, 20, 18, @on
exec sp_trace_setevent @TraceID, 20, 26, @on


declare @intfilter int
declare @bigintfilter bigint

trazas
exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Profiler'
las trazas
así como intentos fallidos de conexión !!


exec sp_trace_setstatus @TraceID, 1


select TraceID=@TraceID
goto finish

error:
select ErrorCode=@rc

finish:
GO


"Wilson R. Rico Camargo" wrote:

Tengo las sentencias SQL para crear una traza y lanzarla sin necesidad de
tener la herramienta "Profiler" abierta pero como funciona el ciclo y
cada
cuanto ejecutara este evento. O es que este procedimiento queda
ejecutandose
solo una vez se ejecuta y si es asi como lo detengo.

Adicionalmente no encuentro como enviarlo a una tabla.


Cordialmente,


Wilson R. Rico Camargo
BBVA Seguros
Bogotá - Colombia

(Oficina (571) 2191100 Ext. 1140
Móvil 300-2076572: Mensajes instantáneos
Visite www.bbvaseguros.com.co



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida