powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как получить список последних выполненных запросов?
7 сообщений из 7, страница 1 из 1
Как получить список последних выполненных запросов?
    #40063811
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю такое, получаю, но только сегодняшние.
А вчерашние можно получить?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
SELECT tst.[session_id],
            s.[login_name] AS [Login Name],
            DB_NAME (tdt.database_id) AS [Database],
            tdt.[database_transaction_begin_time] AS [Begin Time],
            tdt.[database_transaction_log_record_count] AS [Log Records],
            tdt.[database_transaction_log_bytes_used] AS [Log Bytes Used],
            tdt.[database_transaction_log_bytes_reserved] AS [Log Bytes Rsvd],
            SUBSTRING(st.text, (r.statement_start_offset/2)+1,
            ((CASE r.statement_end_offset
                    WHEN -1 THEN DATALENGTH(st.text)
                    ELSE r.statement_end_offset
            END - r.statement_start_offset)/2) + 1) AS statement_text,
            st.[text] AS [Last T-SQL Text],
            qp.[query_plan] AS [Last Plan]
    FROM    sys.dm_tran_database_transactions tdt
            JOIN sys.dm_tran_session_transactions tst
                ON tst.[transaction_id] = tdt.[transaction_id]
            JOIN sys.[dm_exec_sessions] s
                ON s.[session_id] = tst.[session_id]
            JOIN sys.dm_exec_connections c
                ON c.[session_id] = tst.[session_id]
            LEFT OUTER JOIN sys.dm_exec_requests r
                ON r.[session_id] = tst.[session_id]
            CROSS APPLY sys.dm_exec_sql_text (c.[most_recent_sql_handle]) AS st
            OUTER APPLY sys.dm_exec_query_plan (r.[plan_handle]) AS qp
    ORDER BY [Log Bytes Used] DESC
...
Рейтинг: 0 / 0
Как получить список последних выполненных запросов?
    #40063815
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

Ваш запрос можно сказать почти "не подходит" под определение темы топика.

данные в sys.dm_exec_connections живут пока клиентский коннект подключен.
к примеру какой то клиентский комп "сегодня" подключился и выполнил drop database [mostUsableDatabase]; после чего сразу отключился. вы своим запросом не увидите что он сделал.

создавайте или трассировку или xEvent, на события SqlBatchCompleted, но сразу оговорка это будет достаточно дорого в плане просадки производительности.
...
Рейтинг: 0 / 0
Как получить список последних выполненных запросов?
    #40063905
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На drop/create можно создать аудит.
Цель топика, в общем, непонятна.
...
Рейтинг: 0 / 0
Как получить список последних выполненных запросов?
    #40063952
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
Ролг Хупин,

Ваш запрос можно сказать почти "не подходит" под определение темы топика.

данные в sys.dm_exec_connections живут пока клиентский коннект подключен.
к примеру какой то клиентский комп "сегодня" подключился и выполнил drop database [mostUsableDatabase]; после чего сразу отключился. вы своим запросом не увидите что он сделал.

создавайте или трассировку или xEvent, на события SqlBatchCompleted, но сразу оговорка это будет достаточно дорого в плане просадки производительности.


т.е. xEvent тоже сажает производительность, почти как и профайлер?
...
Рейтинг: 0 / 0
Как получить список последних выполненных запросов?
    #40063956
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
т.е. xEvent тоже сажает производительность, почти как и профайлер?

Нет, он значительно меньше аффектит перфоманс, но тоже не бесплатный
...
Рейтинг: 0 / 0
Как получить список последних выполненных запросов?
    #40063986
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
felix_ff
Ролг Хупин,

Ваш запрос можно сказать почти "не подходит" под определение темы топика.

данные в sys.dm_exec_connections живут пока клиентский коннект подключен.
к примеру какой то клиентский комп "сегодня" подключился и выполнил drop database [mostUsableDatabase]; после чего сразу отключился. вы своим запросом не увидите что он сделал.

создавайте или трассировку или xEvent, на события SqlBatchCompleted, но сразу оговорка это будет достаточно дорого в плане просадки производительности.


т.е. xEvent тоже сажает производительность, почти как и профайлер?


ознакомьтесь https://sqlperformance.com/2012/10/sql-trace/observer-overhead-trace-extended-events

статья хоть и старая но приведенные в ней метрики импактов (даже если они и улучшались) в соотношении должны быть примерно такими как в статье.

Если влом читать: гляньте на графики в статье, а если влом переходить по ссылке:
То в случае необходимости долгосрочного анализа событий не снимайте трассу профайлером, используйте обычную server-side трассу.
...
Рейтинг: 0 / 0
Как получить список последних выполненных запросов?
    #40063998
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Query Store ?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как получить список последних выполненных запросов?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]