Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
04cf9f9576a6f15 Member [заблокирован] Откуда: Сообщений: 2927 |
Она выполняется сейчас. Уже третий час. Профайлер включать поздно. Он фиксирует только то, что начало выполняться после его включения. Какие есть способы узнать переданные в неё параметры? И как можно узнать фактический план после её завершения? Ибо sys.dm_exec_query_plan позволяет вытащить из памяти закэшированный план. Но, это предполагаемый план. А мне надо знать, сколько на самом деле строк было обработано и сколько раз выполнялись операторы. #Хэш= |
20 окт 17, 15:33 [20886322] Ответить | Цитировать Сообщить модератору |
Ролг Хупин Member Откуда: Чебаркуль Сообщений: 3970 |
SSMS->Activity Monitor не показывает процедуру? |
20 окт 17, 15:42 [20886365] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
если процедура скомпилирована сегодня (смотрите, сколько раз она вообще выполнена в sys.dm_exec_procedure_stats) то она с прослушанными же параметрами и выполнялась. тогда берите выцепленный из кэша план как и ищите там ParameterList. т.к. у нас кажую ночь базу перефодят в оффлайн, сразу после этого все процы снова компилируются, а т.к. они еще и всего раз в день выполняются, то все актуальные параметры как раз и есть те самые прослушанные. я этим пользуюсь. --- ну или смотрите логин запустившего и скорее к нему с ножом к горлу. пускай признается, с какими параметрами запустил |
||
20 окт 17, 15:46 [20886386] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8316 |
Об этом надо заботиться "до того". |
20 окт 17, 15:47 [20886389] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
*берите выцепленный из кэша план как = берите выцепленный из кэша план как xml |
20 окт 17, 15:48 [20886394] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
прецедуру показывает, а параметры нет |
||
20 окт 17, 15:50 [20886405] Ответить | Цитировать Сообщить модератору |
04cf9f9576a6f15 Member [заблокирован] Откуда: Сообщений: 2927 |
#Хэш= |
||||||
20 окт 17, 15:54 [20886421] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
тогда поезд ушел, т.е. уже никак |
20 окт 17, 15:57 [20886429] Ответить | Цитировать Сообщить модератору |
04cf9f9576a6f15 Member [заблокирован] Откуда: Сообщений: 2927 |
#Хэш= |
||
20 окт 17, 15:58 [20886432] Ответить | Цитировать Сообщить модератору |
04cf9f9576a6f15 Member [заблокирован] Откуда: Сообщений: 2927 |
В итоге набирается десяток таких зомби запросов, которые часами выполняются, отбирая 99% ресурсов процессора. Потом начинают звонить остальные юзера, потому что система страшно тормозит. Стоит задача понять, с какими параметрами запускают запросы в проблемных случаях. #Хэш= |
||
20 окт 17, 16:08 [20886470] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9633 |
|
||
20 окт 17, 16:24 [20886541] Ответить | Цитировать Сообщить модератору |
04cf9f9576a6f15 Member [заблокирован] Откуда: Сообщений: 2927 |
#Хэш= |
||||
20 окт 17, 17:11 [20886742] Ответить | Цитировать Сообщить модератору |
Mind Member Откуда: Лучший город на Земле Сообщений: 2322 |
04cf9f9576a6f15, Если параметров не очень много, посмотрите какие в таблицах есть очень часто встречающиеся значения из тех по которым есть фильтры в запросе. Возможно одно из таких значений, ломает вам запрос. Например, для запроса Проверьте: |
21 окт 17, 03:45 [20887847] Ответить | Цитировать Сообщить модератору |
Mind Member Откуда: Лучший город на Земле Сообщений: 2322 |
Например, для запросаSELECT ... FROM Table ... WHERE Table.ColumnName = @P1 Проверьте: SELECT TOP 10 ColumnName, COUNT(*) FROM Table GROUP BY ColumnName ORDER BY COUNT(*) DESC |
21 окт 17, 03:46 [20887848] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8316 |
04cf9f9576a6f15, Посмотрите код в спойлере 15-го сообщения, может пригодиться. https://www.sql.ru/forum/1144921/i-snova-pro-avtonomnye-tranzakcii-s-pomoshhu-clr?mid=17329722#17329722 |
23 окт 17, 10:56 [20891319] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
что-то меня осенило. если все еще выполняется, смотрим dbcc inputbuffer соответствующей сессии. у нас прямо в студии мышью запускают, так вообще все замечательно видно: К сообщению приложен файл. Размер - 9Kb |
||
27 окт 17, 12:10 [20905811] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8316 |
Yasha123, dbcc inputbuffer таки да, если параметры явно указаны. Но есть такая штука, как reporting services, его буфером не возьмешь :) |
27 окт 17, 12:38 [20905975] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
вот как раз все репортинговы параметры в евонной базе же и логируются, вместе с тем, кто и когда вызвал, сколько оно выполнялось на сервере и рендерилось |
27 окт 17, 12:46 [20906024] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8316 |
Yasha123, да, есть такой момент. Но лень же, как всегда :) Я давно написал себе утилиту, которая показывает буфер ввода, кэш процедуры и текущий запрос этой процедуры. Ходишь по списку SPID и смотришь - кто что выполняет. Жаль MS не сделала такой инструмент. |
27 окт 17, 12:50 [20906065] Ответить | Цитировать Сообщить модератору |
Mind Member Откуда: Лучший город на Земле Сообщений: 2322 |
EventType RPC Event |
||||
28 окт 17, 00:28 [20908289] Ответить | Цитировать Сообщить модератору |
Mind Member Откуда: Лучший город на Земле Сообщений: 2322 |
|
||||
28 окт 17, 00:28 [20908291] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |