|
Как выявить причину очень долгих Compiling a SQL statement?
|
|||
---|---|---|---|
#18+
Есть у меня db2 v11.1.4.5 Имею ситуацию в одной базе со многими lock wait а иногда и ескалацию. Ждут они Compiling a SQL statement их тоже много. Так вот собственно и вопрос как выявить почему Compiling a SQL statement идет очень долго? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 11:11 |
|
Как выявить причину очень долгих Compiling a SQL statement?
|
|||
---|---|---|---|
#18+
Vladimir Mahrov Есть у меня db2 v11.1.4.5 Имею ситуацию в одной базе со многими lock wait а иногда и ескалацию. Ждут они Compiling a SQL statement их тоже много. Так вот собственно и вопрос как выявить почему Compiling a SQL statement идет очень долго? Посмотрите, кто реально кого ждёт: Код: powershell 1.
Детали по каждому соединению: Код: powershell 1.
<AppHandl> - номер из первой колонки результата по блокировкам. Посмотрите ещё тексты запросов и прочее для select * from TABLE(MON_GET_PKG_CACHE_STMT(NULL,NULL,NULL,-2)) с высокими/ненулевыми LOCK_WAITS, LOCK_WAIT_TIME. MON_GET_PKG_CACHE_STMT table function - Get package cache statement metrics Возможно потребуется сгруппировать по STMTID и просуммировать времена, если запросов много (например, если прилетает что без параметризации в большом количестве). Текст запроса тогда следует или вытащить отдельным запросом или взяв "любой из группы". ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 13:21 |
|
Как выявить причину очень долгих Compiling a SQL statement?
|
|||
---|---|---|---|
#18+
не совсем понятна ваша рекомендация. кто кого ждет я знаю, и что находится в compiling sql statment у меня не получается вытащить. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 13:41 |
|
Как выявить причину очень долгих Compiling a SQL statement?
|
|||
---|---|---|---|
#18+
Vladimir Mahrov, Возможно я не очень понял, что вы пишете, и начал с шагов, которые вы уже прошли. Сompiling sql statement - может это "compil ed SQL statement" (те, что находятся в пакетах - скомпилированные процедуры, BINDed запросы из mbedded SQL)? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 13:53 |
|
Как выявить причину очень долгих Compiling a SQL statement?
|
|||
---|---|---|---|
#18+
я имею ввиду вот про это ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 14:21 |
|
Как выявить причину очень долгих Compiling a SQL statement?
|
|||
---|---|---|---|
#18+
Ага, речь не про compiled, речь про "в стадии компиляции". Посмотрите, что там с этими апликациями. db2pd -alldbs -apinfo 207 db2pd -alldbs -apinfo 534 или более подробно: db2 get snapshot for application agentid 207 db2 get snapshot for application agentid 534 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2020, 15:07 |
|
Как выявить причину очень долгих Compiling a SQL statement?
|
|||
---|---|---|---|
#18+
И что мне даст эта информация? Как понять почему долго выполняется? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2020, 09:12 |
|
Как выявить причину очень долгих Compiling a SQL statement?
|
|||
---|---|---|---|
#18+
Vladimir Mahrov И что мне даст эта информация? Как понять почему долго выполняется? Может ничего не даст, может даст, может позволит оттолкнуться в дальнейших исследованиях от того, что "ничего не даст". Лично я бы сделал это первым шагом. Там вы можете обнаружить время начала последней операции (и, соответственно, оценить её продолжительность): Scope блокировок в общем случае (на высоких уровнях изоляции или когда у вас произошла эскалация блокировок) - в пределах транзакции, другое соединение может ждать завершения _транзакции_ в первом. В то время как первое - ничтоже сумняшеся может продолжать какую-то свою долгую работу. Например , обновлять что-то там в базе через большое количество мелких запросов. Если запросы непараметризованы, то время компиляции может быть существенно больше времени выполнения, и в db2top вы будете видеть только это состояние (и ошибочно решите, что это долго компилируется один запрос). Можете обнаружить время начала транзакции и соотнести с временем перехода в состояние блокировки второго приложения. Можете увидеть текст запроса и а) оценить, что с ним вообще может происходить б) посмотреть по содержимому кэша запросов статистику, сколько он реально компилировался (и прочие времена) в) попробовать скомпилировать этот запрос самостоятельно (prepare ..., explain plan for ...). И т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2020, 13:01 |
|
Как выявить причину очень долгих Compiling a SQL statement?
|
|||
---|---|---|---|
#18+
Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2020, 17:45 |
|
Как выявить причину очень долгих Compiling a SQL statement?
|
|||
---|---|---|---|
#18+
Vladimir Mahrov, Навряд ли вы сами разберетесь, почему запрос долго компилируется. Это особенности оптимизатора, и как он там внутри чего и почему делает - вы не сможете понять. Это надо запрос в поддержку отправлять. Они там, наверное, смогут проанализировать трассировку вашего приложения (результат db2trc) и сказать, на что там время и ресурсы тратятся. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2020, 12:42 |
|
Как выявить причину очень долгих Compiling a SQL statement?
|
|||
---|---|---|---|
#18+
Mark Barinstein Vladimir Mahrov, Навряд ли вы сами разберетесь, почему запрос долго компилируется. Это особенности оптимизатора, и как он там внутри чего и почему делает - вы не сможете понять. Это надо запрос в поддержку отправлять. Они там, наверное, смогут проанализировать трассировку вашего приложения (результат db2trc) и сказать, на что там время и ресурсы тратятся. А подскажете как сделать трасировку лучше? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2020, 16:04 |
|
Как выявить причину очень долгих Compiling a SQL statement?
|
|||
---|---|---|---|
#18+
Vladimir Mahrov А подскажете как сделать трасировку лучше? Для вас эта информация не будет иметь смысла, т.к. непонятно, что с ней делать. Всё, что вы можете сами сделать тут, это как-то переписать запрос, чтобы его компиляция не занимала столько времени. Еще, может, посмотрите на размер кэша запросов (PCKCACHESZ). Если он сильно разросся, то зафиксируйте его размер жестко в разумное значение или посмотрите, почему это происходит (как правило - одинаковые запросы с константами вместо параметров?). ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2020, 17:16 |
|
|
start [/forum/topic.php?fid=43&msg=40001281&tid=1600167]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 304ms |
total: | 431ms |
0 / 0 |