Скорость запроса DB2 - PullRequest
       32

Скорость запроса DB2

0 голосов
/ 19 сентября 2018

У меня есть процедура DB2, которая выполняет очень длинный запрос SELECT (6 CTE, которые затрагивают около 5 или 6 разных таблиц, некоторые разворачиваются, мало объединений).Я вошел в систему System i Navigator как пользователь с правами администратора.Эта учетная запись пользователя имеет право делать практически все.Моего личного имени пользователя нет.Поэтому я вхожу в систему, чтобы облегчить себе задачу.

Когда я запускаю эту процедуру (открыв окно SQL Script и введя CALL Procedure_Name('Param1');), обработка завершается через 4 или 5 секунд.

Мой босс вошел в свой i Navigator под своим именем пользователя.У его имени пользователя больше полномочий, чем у моего личного аккаунта, но меньше, чем у администратора, который я использую.Когда он выполняет ту же процедуру тем же способом, что и я, для его запуска требуется около 15-20 секунд.

Поэтому мой вопрос: влияет ли имя пользователя, под которым вы вошли в систему, на скорость, с которойЗапрос DB2 выполняется?Если да, что я могу изменить, чтобы запрос выполнялся с одинаковой скоростью для всех пользователей, предпочтительно со скоростью, с которой его запускает учетная запись администратора?

1 Ответ

0 голосов
/ 20 сентября 2018

Используйте «Выполнить и объяснить» из сценариев «Выполнить SQL» (желательно, последнюю версию, включенную в Access Client Solutions (ACS), а не более старую версию IBM i Access для Windows i Navigator)

Сравните результаты из разных профилей пользователей.В частности, раздел опций INI ... звучит так, как будто цель оптимизации может быть другой.
INI Options
*FIRSTIO означает, что БД выберет наиболее эффективный план для возврата первогонесколько записей как можно быстрее;идеально, если пользователь ждет, чтобы увидеть что-то на экране.*ALLIO означает, что БД выберет наиболее эффективный план для возврата всех записей;идеально подходит для пакетного процесса (или клиентского приложения), который все равно будет извлекать все записи.

Также посмотрите раздел информации об окружающей среде
environment information
Это покажет вам, если один пользователь работает в другом пуле памяти и / или группе рабочей нагрузки и / или естьзначительная разница в доступной памяти в то время, когда работает один пользователь.

...