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

Откуда:
Сообщений: 42
копался в интернете, не нашел.
Подскажите пожалуйста, есть ли возможность запускать стандартный профайлер от ms из своей программы, предварительно настраивая шаблон, фильтрации и прочие параметры?
17 июл 14, 10:46    [16316808]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Profiler. запуск из своей программы  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
sp_tracecreate
17 июл 14, 10:58    [16316897]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Profiler. запуск из своей программы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31779
bayazet
Подскажите пожалуйста, есть ли возможность запускать стандартный профайлер от ms из своей программы, предварительно настраивая шаблон, фильтрации и прочие параметры?
Теоретически можно просто запустить профайлер: https://www.sql.ru/forum/161862/kak-zapustit-profiler-iz-komandnoy-stroki-s-trace-template
Но лучше конечно использовать предназначенные для этого хранимые процедуры, как написал Maxx
17 июл 14, 11:35    [16317300]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Profiler. запуск из своей программы  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 891
можно еще запустить профайлер, настроить его как надо, указать что куда сохранять, а затем все заскриптовать.
Потом полученный код использовать.
17 июл 14, 11:53    [16317451]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Profiler. запуск из своей программы  [new]
bayazet
Member

Откуда:
Сообщений: 42
насколько я разобрался, sp_trace_create позволяет создать файл трассировки, который будет заполняться, а потом его уже можно будет проанализировать

а у меня немного иная задача: допустим, по клику запустить профайлер (предварительно указав за какой базой следить от какого аппликейшна) и в режиме реального времени смотреть за трассировкой
17 июл 14, 12:52    [16317985]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Profiler. запуск из своей программы  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Настройте шаблон и вперед. Вот только мне не понятно зачем стороними средствами запускать профайлер....чтоб интресней было ?
17 июл 14, 13:00    [16318038]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Profiler. запуск из своей программы  [new]
bayazet
Member

Откуда:
Сообщений: 42
Maxx, ну например есть некорый интерфейс, который позволяет отображать транзакции, принимаемые и передаваемые серверами\базами. и оп, в какой-то момент, на каком-то участке начинают эти транзакции скапливаться. именно в этом случае удобно иметь возможность по клику запустить профайлер и посмотреть, что не так
17 июл 14, 13:03    [16318053]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Profiler. запуск из своей программы  [new]
bayazet
Member

Откуда:
Сообщений: 42
Maxx, а как мне в этом случае реализовать передачу из приложения необходимых значений для фильтров (типа, имя базы данных или приложения), не подскажете?
17 июл 14, 13:04    [16318060]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Profiler. запуск из своей программы  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
bayazet
Maxx, а как мне в этом случае реализовать передачу из приложения необходимых значений для фильтров (типа, имя базы данных или приложения), не подскажете?

подскажу конечно - начать таки читать хелп по продукту , а на ввпрос как ето сделать - вам ссылку дал alexeyvg
17 июл 14, 13:11    [16318102]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Profiler. запуск из своей программы  [new]
west74
Member

Откуда: Челябинск
Сообщений: 76
вот даже кино сняли на тему :), можно не читать доку

http://www.techdays.ru/videos/1256.html
17 июл 14, 13:18    [16318157]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Profiler. запуск из своей программы  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
west74
можно не читать доку

Ню-Ню вперед че уж там
17 июл 14, 13:20    [16318171]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Profiler. запуск из своей программы  [new]
bayazet
Member

Откуда:
Сообщений: 42
к чему я пришел
прям напрямую изменять фильтры в трассировке нельзя. но специфика задачи позволяется подготовить некоторый набор шаблонов (который хранится рядом с исполняемым файлом приложения) и копировать необходимый файл шаблона трассировки в соотв.директорию с предустановленными шаблонами профайлера
после этого запускать профайлер из cmd "profiler /T "my_tdf""

но тут возник вопрос, скорее всего не по теме топика, но все же:
бывают ситуации, когда на компьютере установлены несколько профайлеров (2000, 2008, 2012 etc)
как определить, из какого места на диске запускается cmd "profiler"?
30 июл 14, 11:46    [16375862]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Profiler. запуск из своей программы  [new]
o-o
Guest
bayazet
как определить, из какого места на диске запускается cmd "profiler"?


так поди оттуда, что прописано в виндовской Enviroment Variables -> PATH
30 июл 14, 11:57    [16376008]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Profiler. запуск из своей программы  [new]
bayazet
Member

Откуда:
Сообщений: 42
o-o, спасибо за наводку!
выложу код, вдруг пригодится кому-нибудь
procedure GetProfilerVers : string;
  var
    paths, str : string;
    flag : boolean;
begin
  flag := false;
  paths := GetEnvironmentVariable(PChar('Path'));
  // перебираем все пути из Enviroment Paths, ищем, в каком есть profiler.exe
  while (Pos(';', paths) <> 0) and (not flag) do
  begin
    if Pos(';', paths) = 0 then str := paths
                           else str := Copy(paths, 1, Pos(';', paths)-1);
    Delete(paths, 1, Pos(';', paths));
    if Pos(';', paths) = 0 then str := paths
                           else str := Copy(paths, 1, Pos(';', paths)-1);
    if str[length(str)] = '\' then
      delete(str, length(str), 1);
    flag := FileExists(str + '\Profiler.exe');
  end;
  if not flag then
  begin
    str := paths;
    flag := FileExists(str + '\Profiler.exe');
  end;

  if flag then  //парсим путь, который нашли
  begin
    Delete(str, 1, Pos('Microsoft SQL Server', str)+Length('Microsoft SQL Server'));
    Delete(str, Pos('\', str), Length(str)-Pos('\', str)+1);
    result := str;
  end
  else
    result := '';
end;
30 июл 14, 13:26    [16376647]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить