|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
Максим Александровитч, объем записанной профайлером трассировки не связан с размером заполнения tempdb. Поставьте фильтры, уберите лишние колонки, будет не так много записано. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 22:22 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
Владислав Колосов Максим Александровитч, объем записанной профайлером трассировки не связан с размером заполнения tempdb. Поставьте фильтры, уберите лишние колонки, будет не так много записано. Максим Александровитч Владислав Колосова какой объем запросов создает _один_ пользователь? Или Вы просто спекулируете не проведя эксперимент? Эти запросы отсасывают темдб...за час где-то 120 ГБ..Вопрос Владислава Колосова был про объём запросов. Запросы с текстом размера 120 Гб пользователь явно не посылает. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 10:48 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
alexeyvg + 1 Выдуманная проблема, уж если дефаултный трейс серьёзно не мешает, то этот вообще будет незаметен. Фильтр на пользователя, + дюрейшен по определению не может нагрузить, именно из за фильтра по дюрейшену. Для фильтрации по duration нужно включать SQL:StmtCompleted. И генерироваться это событие будет для всех выполняемых запросов и только потом уже отфильтровываться. Насколько это повлияет на производительность можете оценить самостоятельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 13:29 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
invm alexeyvg + 1 Выдуманная проблема, уж если дефаултный трейс серьёзно не мешает, то этот вообще будет незаметен. Фильтр на пользователя, + дюрейшен по определению не может нагрузить, именно из за фильтра по дюрейшену. Для фильтрации по duration нужно включать SQL:StmtCompleted. И генерироваться это событие будет для всех выполняемых запросов и только потом уже отфильтровываться. Насколько это повлияет на производительность можете оценить самостоятельно. И, концептуально, события в профайлере, и Extended Events, одинаковы, просто совершенно разная реализация. События ведь в любом случае генерятся все существующие (как иначе, ведь не загружается же новый код database engine при запуске профайлера?), но при установке трассы сначала добавляется обработчик, притом явно на верхнем уровне цепочки, а дальше в обработке идёт проверка фильтров. То есть, теоретически, заметно влиять не должно, то есть, можно сделать, что бы не влияло. А вот как сделано на самом деле, интересно было бы узнать. Или хотя бы потестить. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 14:31 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
Максим Александровитч Добрый день. Подскажите,кто сможет. Нужно отследить действия пользователя А в БД. Он может делать все инструкции,но в идеале нужно отслеживать слишком долгое выполнение его запросов. Подскажите,как это лучше сделать средствами MSSQL Вы тут углубились в дебри профилирования, а на самом деле у ТС есть безнес задача, которая должна быть реализованы на уровне бизнес логики. Все запросы пользователей должны быть обернуты в процедуры и во всех процедурах надо следит за временем. Логировать время кодом процедур. Отправлять нотификацию из кода процедуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 14:34 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
a_voronin Максим Александровитч Добрый день. Подскажите,кто сможет. Нужно отследить действия пользователя А в БД. Он может делать все инструкции,но в идеале нужно отслеживать слишком долгое выполнение его запросов. Подскажите,как это лучше сделать средствами MSSQL Вы тут углубились в дебри профилирования, а на самом деле у ТС есть безнес задача, которая должна быть реализованы на уровне бизнес логики. Все запросы пользователей должны быть обернуты в процедуры и во всех процедурах надо следит за временем. Логировать время кодом процедур. Отправлять нотификацию из кода процедуры. ИМХО наоборот не надо смешивать бизнес логику с мониторингом и логированием. Хватает инструментов, чтобы отловить долгие запросы, нотификации настроить и статистику красиво вывести, не захламляя при этом код своими велосипедами. ТСу хочется средствами MSSQL. Это Extended Events, либо Trace. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 14:42 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
Максим Александровитч Mr. X Максим Александровитч, Тогда сами раз в мин, например, собирайте ифу запросом. Да,по сути к этому же я пришел..По другому,походу никак.. Может кто-ть в курсе,есть ли какое-ть сторонее ПО для этих целей? А в каком виде вы хотите собирать данные? Как с этим работать? ПО для мониторинга полно на рынке. Мы к примеру используем NewRelic и Raygun. Но прежде чем что-то советовать, хотелось бы какие-то требования увидеть. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 14:48 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
Дмитрий Мух a_voronin пропущено... Вы тут углубились в дебри профилирования, а на самом деле у ТС есть безнес задача, которая должна быть реализованы на уровне бизнес логики. Все запросы пользователей должны быть обернуты в процедуры и во всех процедурах надо следит за временем. Логировать время кодом процедур. Отправлять нотификацию из кода процедуры. ИМХО наоборот не надо смешивать бизнес логику с мониторингом и логированием. Хватает инструментов, чтобы отловить долгие запросы, нотификации настроить и статистику красиво вывести, не захламляя при этом код своими велосипедами. ТСу хочется средствами MSSQL. Это Extended Events, либо Trace. А по-моему вот это бизнес логика по распределению ресурсов. "Т.е.,суть такова,что я ставлю на мониторинг активность этого пользователя,если его запросы превышают определенный порог в мс(ну или любой другой),то логируется или отправляется уведомление." ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 16:50 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
a_voronin Дмитрий Мух пропущено... ИМХО наоборот не надо смешивать бизнес логику с мониторингом и логированием. Хватает инструментов, чтобы отловить долгие запросы, нотификации настроить и статистику красиво вывести, не захламляя при этом код своими велосипедами. ТСу хочется средствами MSSQL. Это Extended Events, либо Trace. А по-моему вот это бизнес логика по распределению ресурсов. "Т.е.,суть такова,что я ставлю на мониторинг активность этого пользователя,если его запросы превышают определенный порог в мс(ну или любой другой),то логируется или отправляется уведомление." Что за предметная область? По мне так простейший алерт в системе мониторинга. Обычно мышкой накликивается. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 21:11 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
skyANA a_voronin пропущено... А по-моему вот это бизнес логика по распределению ресурсов. "Т.е.,суть такова,что я ставлю на мониторинг активность этого пользователя,если его запросы превышают определенный порог в мс(ну или любой другой),то логируется или отправляется уведомление." Что за предметная область? По мне так простейший алерт в системе мониторинга. Обычно мышкой накликивается. Бизнес-логика состоит в разделении ресурсов, в отправке сообщения, в выделении пользователю квоты. Это конечно не логика проведения платежа или приема товара на склад, но это все же нечто, что взаимодействует с юзером, оказывает на него влияние. Это явно не тот мониторинг, который делается для оптимизации производительности. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 08:32 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
На обработку событий все время тратится время - с профилировщиком или без, другой вопрос - сколько "хуков" мы подвесим на эти события и какой IO у нас при этом возникнет в связи с частотой событий. IO на том же сарвере будет, конечно же, вредоносным. Из-за чего у начинающих сыщиков падают сервера. В любом случае, лучшие практики использования профайлера уже описаны в открытых источниках. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 10:38 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
Всем спс.. Буду юзать профайлер.. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 13:58 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
С другой стороны есть Заббикс. но,опять же,опрос-то производится с помощью скуля. Заббикс лишь регулирует периодичность.. Надо подумать ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 13:59 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
a_voronin Максим Александровитч Добрый день. Подскажите,кто сможет. Нужно отследить действия пользователя А в БД. Он может делать все инструкции,но в идеале нужно отслеживать слишком долгое выполнение его запросов. Подскажите,как это лучше сделать средствами MSSQL Вы тут углубились в дебри профилирования, а на самом деле у ТС есть безнес задача, которая должна быть реализованы на уровне бизнес логики. Все запросы пользователей должны быть обернуты в процедуры и во всех процедурах надо следит за временем. Логировать время кодом процедур. Отправлять нотификацию из кода процедуры. Это практически невозможно...я говорил почему ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 14:41 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
После запуска трассировки с нексолькоми фильтрами и записью в таблицу сервер умер ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 16:03 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
Максим Александровитч, https://docs.microsoft.com/ru-ru/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-procedure-stats-transact-sql?view=sql-server-ver15 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 16:04 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
Максим Александровитч, Таблица на другом сервере была? А фильтр по пользователю или для всех? Фильтр каких событий? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 16:07 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
Максим Александровитч После запуска трассировки с нексолькоми фильтрами и записью в таблицу сервер умер ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 17:15 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
Максим Александровитч, Для текущих запросов можно поиграться с Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 17:34 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
Владислав Колосов А фильтр по пользователю или для всех? Фильтр каких событий? Но видимо сам собой создался трейс без фильтров, и на все события, и сервер "упал" :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 17:36 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
Максим Александровитч После запуска трассировки с нексолькоми фильтрами и записью в таблицу сервер умер ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2020, 00:09 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
entrypoint, Гениально. Может ещё фильтр по пользователю покажете как сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2020, 00:10 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
Mind, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2020, 09:51 |
|
Залогировать время выполненя запроса
|
|||
---|---|---|---|
#18+
entrypoint, зачем во втором cross apply, values пишите? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2020, 12:39 |
|
|
start [/forum/topic.php?fid=46&msg=39911574&tid=1686637]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 175ms |
0 / 0 |