SQL Server 2008 - Получающий все SQL-операторы, Поражающие Сервер

Кто-либо может предложить опции, которые мы могли бы иметь в получении всех SQL-операторов, отправляемых в наш SQL Server, за пределами рабочего Профилировщика? Я знаю о паре способов сделать его, но хочу удостовериться, что я не пропускаю что-то, такое как существующее представление DM и т.д.

Большое спасибо.

9
задан Martin Smith 15 October 2011 в 12:48
поделиться

4 ответа

Расширенные события в SQL Server 2008. Похоже, они недостаточно используются. Возможно, из-за отсутствия поддержки пользовательского интерфейса, но они более гибкие, чем трассировки SQL (больше событий и лучшие возможности фильтрации), более легкие (из-за лучшей фильтрации и возможности отбрасывать события, а не блокировать)

Пример синтаксиса приведен ниже. Однако существует гораздо больше событий, действий, предикатов и целевых возможностей вывода, чем это.

IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='test_trace')
DROP EVENT SESSION [test_trace] ON SERVER;
CREATE EVENT SESSION [test_trace]
ON SERVER
ADD EVENT sqlserver.sql_statement_completed(
     ACTION (package0.callstack, sqlserver.session_id, sqlserver.sql_text)
     )
,
ADD EVENT sqlserver.sp_statement_completed(
     ACTION (package0.callstack, sqlserver.session_id, sqlserver.sql_text)
     )
ADD TARGET package0.asynchronous_file_target
(set filename = 'c:\temp\test_trace.xel' , metadatafile = 'c:\temp\test_trace.xem')
ALTER EVENT SESSION [test_trace] ON SERVER STATE = START

И для просмотра результатов

SELECT CONVERT (XML, event_data) AS data
        FROM sys.fn_xe_file_target_read_file ('C:\Temp\test_trace*.xel',
         'C:\Temp\test_trace*.xem', NULL, NULL)
13
ответ дан 4 December 2019 в 12:59
поделиться

Если ваша проблема с Profiler заключается не в том, что вы не хотите его использовать, а в том, что вы не можете его использовать, возможно, вы могли бы использовать Profiler для Microsoft SQL Server 2005/2008 Express Edition Это бесплатно и с открытым исходным кодом.

1
ответ дан 4 December 2019 в 12:59
поделиться

Я думаю, ваши варианты:

Есть DMV, которые собирают информацию, такую ​​как длительные запросы, но я не думаю, что есть такой, который предоставит вам все.

1
ответ дан 4 December 2019 в 12:59
поделиться

Вы можете использовать трассировку для программного захвата вывода: Программное получение событий профилировщика (в реальном времени) от SQL Server 2005

1
ответ дан 4 December 2019 в 12:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: