Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL profile alternative  [new]
A-LeXus
Member

Откуда: Latvia, Jurmala
Сообщений: 63
Как то на презентации Microsoft, представитель показывал что можно с помощью SQL команд повторить работу SQL profile. Причем утверждал, что это еффективнее. К сожелению он обещался выложить... но получилось как всегда.
Может кто знает что это за скрипт?
11 июл 13, 10:53    [14550874]     Ответить | Цитировать Сообщить модератору
 Re: SQL profile alternative  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
A-LeXus
Как то на презентации Microsoft, представитель показывал что можно с помощью SQL команд повторить работу SQL profile. Причем утверждал, что это еффективнее. К сожелению он обещался выложить... но получилось как всегда.
Может кто знает что это за скрипт?

Вы имеете ввиду запустить трейс из окна SSMS просто командой?
11 июл 13, 10:59    [14550927]     Ответить | Цитировать Сообщить модератору
 Re: SQL profile alternative  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
Если да, то как-то так:

+ Код:

-- Создания запроса трассировки
declare @rc int
declare @TraceID int
declare @maxfilesize bigint
set @maxfilesize = 5 --тут указываем размер файла

--запрос на создание трейса
exec @rc = sp_trace_create @TraceID output, 0, N'D:\Tracedata.trc', @maxfilesize, NULL 
if (@rc != 0) goto error --если ошибка сваливаемся в еррор

-- Выбираем события
declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 14, 1, @on
exec sp_trace_setevent @TraceID, 14, 9, @on
exec sp_trace_setevent @TraceID, 14, 6, @on
exec sp_trace_setevent @TraceID, 14, 10, @on
exec sp_trace_setevent @TraceID, 14, 14, @on
exec sp_trace_setevent @TraceID, 14, 11, @on
exec sp_trace_setevent @TraceID, 14, 12, @on
exec sp_trace_setevent @TraceID, 15, 15, @on
exec sp_trace_setevent @TraceID, 15, 16, @on
exec sp_trace_setevent @TraceID, 15, 9, @on
exec sp_trace_setevent @TraceID, 15, 17, @on
exec sp_trace_setevent @TraceID, 15, 6, @on
exec sp_trace_setevent @TraceID, 15, 10, @on
exec sp_trace_setevent @TraceID, 15, 14, @on
exec sp_trace_setevent @TraceID, 15, 18, @on
exec sp_trace_setevent @TraceID, 15, 11, @on
exec sp_trace_setevent @TraceID, 15, 12, @on
exec sp_trace_setevent @TraceID, 15, 13, @on
exec sp_trace_setevent @TraceID, 17, 1, @on
exec sp_trace_setevent @TraceID, 17, 9, @on
exec sp_trace_setevent @TraceID, 17, 6, @on
exec sp_trace_setevent @TraceID, 17, 10, @on
exec sp_trace_setevent @TraceID, 17, 14, @on
exec sp_trace_setevent @TraceID, 17, 11, @on
exec sp_trace_setevent @TraceID, 17, 12, @on
exec sp_trace_setevent @TraceID, 10, 15, @on
exec sp_trace_setevent @TraceID, 10, 16, @on
exec sp_trace_setevent @TraceID, 10, 9, @on
exec sp_trace_setevent @TraceID, 10, 17, @on
exec sp_trace_setevent @TraceID, 10, 2, @on
exec sp_trace_setevent @TraceID, 10, 10, @on
exec sp_trace_setevent @TraceID, 10, 18, @on
exec sp_trace_setevent @TraceID, 10, 11, @on
exec sp_trace_setevent @TraceID, 10, 12, @on
exec sp_trace_setevent @TraceID, 10, 13, @on
exec sp_trace_setevent @TraceID, 10, 6, @on
exec sp_trace_setevent @TraceID, 10, 14, @on
exec sp_trace_setevent @TraceID, 12, 15, @on
exec sp_trace_setevent @TraceID, 12, 16, @on
exec sp_trace_setevent @TraceID, 12, 1, @on
exec sp_trace_setevent @TraceID, 12, 9, @on
exec sp_trace_setevent @TraceID, 12, 17, @on
exec sp_trace_setevent @TraceID, 12, 6, @on
exec sp_trace_setevent @TraceID, 12, 10, @on
exec sp_trace_setevent @TraceID, 12, 14, @on
exec sp_trace_setevent @TraceID, 12, 18, @on
exec sp_trace_setevent @TraceID, 12, 11, @on
exec sp_trace_setevent @TraceID, 12, 12, @on
exec sp_trace_setevent @TraceID, 12, 13, @on
exec sp_trace_setevent @TraceID, 13, 1, @on
exec sp_trace_setevent @TraceID, 13, 9, @on
exec sp_trace_setevent @TraceID, 13, 6, @on
exec sp_trace_setevent @TraceID, 13, 10, @on
exec sp_trace_setevent @TraceID, 13, 14, @on
exec sp_trace_setevent @TraceID, 13, 11, @on
exec sp_trace_setevent @TraceID, 13, 12, @on


-- устанавливаем фильтры
declare @intfilter int
declare @bigintfilter bigint

exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Server Profiler - 3ecb5b1e-2b11-49c5-9104-bce900017237'
-- запускаем трейс
exec sp_trace_setstatus @TraceID, 1

-- сохраним ID трейса
select  'Trace Started with ID: ' +CONVERT(varchar,@TraceID)
goto finish
--Обработаем ошибочку
error: 
select ErrorCode=@rc

finish: 
go
--чтобы тормознуть трейс: 1й параметр - ID трейса, 2й - команда (0 - стоп, 1 - старт, 2 - удалить)
--При удалении трейс файл trc не удаляется!!!!! так что не паримся
--Если забыл ID трейса - смотри в лог SQL сервер и ищи какие трейсы были запущены от твоего имени!!!
--exec sp_trace_setstatus 2,0
--exec sp_trace_setstatus 2,2

11 июл 13, 11:01    [14550937]     Ответить | Цитировать Сообщить модератору
 Re: SQL profile alternative  [new]
A-LeXus
Member

Откуда: Latvia, Jurmala
Сообщений: 63
Сергей Викт.,
спасибо, да...
11 июл 13, 11:05    [14550964]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить