powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как выявить причину очень долгих Compiling a SQL statement?
12 сообщений из 12, страница 1 из 1
Как выявить причину очень долгих Compiling a SQL statement?
    #40001222
Vladimir Mahrov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть у меня db2 v11.1.4.5
Имею ситуацию в одной базе со многими lock wait а иногда и ескалацию.
Ждут они Compiling a SQL statement их тоже много.
Так вот собственно и вопрос как выявить почему Compiling a SQL statement идет очень долго?
...
Рейтинг: 0 / 0
Как выявить причину очень долгих Compiling a SQL statement?
    #40001272
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Mahrov
Есть у меня db2 v11.1.4.5
Имею ситуацию в одной базе со многими lock wait а иногда и ескалацию.
Ждут они Compiling a SQL statement их тоже много.
Так вот собственно и вопрос как выявить почему Compiling a SQL statement идет очень долго?

Посмотрите, кто реально кого ждёт:
Код: powershell
1.
db2pd -db <dbname> -wlocks



Детали по каждому соединению:
Код: powershell
1.
db2pd -alldbs -wlocks <AppHandl>

<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 и просуммировать времена, если запросов много (например, если прилетает что без параметризации в большом количестве). Текст запроса тогда следует или вытащить отдельным запросом или взяв "любой из группы".
...
Рейтинг: 0 / 0
Как выявить причину очень долгих Compiling a SQL statement?
    #40001281
Vladimir Mahrov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не совсем понятна ваша рекомендация. кто кого ждет я знаю, и что находится в compiling sql statment у меня не получается вытащить.
...
Рейтинг: 0 / 0
Как выявить причину очень долгих Compiling a SQL statement?
    #40001287
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Mahrov,

Возможно я не очень понял, что вы пишете, и начал с шагов, которые вы уже прошли.

Сompiling sql statement - может это "compil ed SQL statement" (те, что находятся в пакетах - скомпилированные процедуры, BINDed запросы из mbedded SQL)?
...
Рейтинг: 0 / 0
Как выявить причину очень долгих Compiling a SQL statement?
    #40001311
Vladimir Mahrov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я имею ввиду вот про это
...
Рейтинг: 0 / 0
Как выявить причину очень долгих Compiling a SQL statement?
    #40001334
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, речь не про compiled, речь про "в стадии компиляции".

Посмотрите, что там с этими апликациями.
db2pd -alldbs -apinfo 207
db2pd -alldbs -apinfo 534

или более подробно:
db2 get snapshot for application agentid 207
db2 get snapshot for application agentid 534
...
Рейтинг: 0 / 0
Как выявить причину очень долгих Compiling a SQL statement?
    #40001963
Vladimir Mahrov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И что мне даст эта информация?
Как понять почему долго выполняется?
...
Рейтинг: 0 / 0
Как выявить причину очень долгих Compiling a SQL statement?
    #40002104
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Mahrov
И что мне даст эта информация?
Как понять почему долго выполняется?

Может ничего не даст, может даст, может позволит оттолкнуться в дальнейших исследованиях от того, что "ничего не даст". Лично я бы сделал это первым шагом.

Там вы можете обнаружить время начала последней операции (и, соответственно, оценить её продолжительность):
Scope блокировок в общем случае (на высоких уровнях изоляции или когда у вас произошла эскалация блокировок) - в пределах транзакции, другое соединение может ждать завершения _транзакции_ в первом. В то время как первое - ничтоже сумняшеся может продолжать какую-то свою долгую работу. Например , обновлять что-то там в базе через большое количество мелких запросов. Если запросы непараметризованы, то время компиляции может быть существенно больше времени выполнения, и в db2top вы будете видеть только это состояние (и ошибочно решите, что это долго компилируется один запрос).

Можете обнаружить время начала транзакции и соотнести с временем перехода в состояние блокировки второго приложения.

Можете увидеть текст запроса и а) оценить, что с ним вообще может происходить б) посмотреть по содержимому кэша запросов статистику, сколько он реально компилировался (и прочие времена) в) попробовать скомпилировать этот запрос самостоятельно (prepare ..., explain plan for ...).

И т.д.
...
Рейтинг: 0 / 0
Как выявить причину очень долгих Compiling a SQL statement?
    #40002276
Vladimir Mahrov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
...
Рейтинг: 0 / 0
Как выявить причину очень долгих Compiling a SQL statement?
    #40002493
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir Mahrov,

Навряд ли вы сами разберетесь, почему запрос долго компилируется.
Это особенности оптимизатора, и как он там внутри чего и почему делает - вы не сможете понять.
Это надо запрос в поддержку отправлять. Они там, наверное, смогут проанализировать трассировку вашего приложения (результат db2trc) и сказать, на что там время и ресурсы тратятся.
...
Рейтинг: 0 / 0
Как выявить причину очень долгих Compiling a SQL statement?
    #40004931
Vladimir Mahrov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein
Vladimir Mahrov,

Навряд ли вы сами разберетесь, почему запрос долго компилируется.
Это особенности оптимизатора, и как он там внутри чего и почему делает - вы не сможете понять.
Это надо запрос в поддержку отправлять. Они там, наверное, смогут проанализировать трассировку вашего приложения (результат db2trc) и сказать, на что там время и ресурсы тратятся.


А подскажете как сделать трасировку лучше?
...
Рейтинг: 0 / 0
Как выявить причину очень долгих Compiling a SQL statement?
    #40004955
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir Mahrov
А подскажете как сделать трасировку лучше?
Трассировки делают так, как говорит служба поддержки. Им ведь разбираться надо будет, в какой именно там функции тратится основное время.
Для вас эта информация не будет иметь смысла, т.к. непонятно, что с ней делать.

Всё, что вы можете сами сделать тут, это как-то переписать запрос, чтобы его компиляция не занимала столько времени.
Еще, может, посмотрите на размер кэша запросов (PCKCACHESZ). Если он сильно разросся, то зафиксируйте его размер жестко в разумное значение или посмотрите, почему это происходит (как правило - одинаковые запросы с константами вместо параметров?).
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как выявить причину очень долгих Compiling a SQL statement?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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