powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / время выполнения запроса
17 сообщений из 17, страница 1 из 1
время выполнения запроса
    #33594007
OLGA_SH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!!!
Я в DB2 пока, не спец, поэтому прошу помощи у знатоков.
Есть три таблицы, где-то по 200 тыс записей, связаны по внешним ключам.
Картина такая, запрос на всем массиве записей не решается, секунд ч/з 40 вылетает с сообщением SQL0952N обработка отменена.
Если тотже запрос разбить на две части, т.е. sn<100 000 и соотв >100 000 и выполнять их отдельно, то все ОК.
Кто знает, подскажите в чем дело, может какой параметр нужно поднять?
У нас DB2 7, инет ни-ни, только из дома по выходным, в книге Бакларца к сожалению не нашла.
...
Рейтинг: 0 / 0
время выполнения запроса
    #33594334
можетбыть
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tablespace изменить (ALTER TABLESPACE)?
...
Рейтинг: 0 / 0
время выполнения запроса
    #33594928
OLGA_SH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовали, не помогло
...
Рейтинг: 0 / 0
время выполнения запроса
    #33595141
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чай, не из MS Access его выполняете? Смахивает на его фокусы. SQL0952N намекает, что запрос выполнялся, но его отменил кто-то нетерпеливый.

Моё предложение:

1. выполнить runstats on table ... with distribution and detailed indexes all на каждой таблице.
2. спросить у index advisor'а, не нужно ли посоздавать индексов
db2advis -d ИМЯБАЗЫ -i ИМЯФАЙЛАСОСКРИПТОМ -o ИМЯФАЙЛАСРЕЗУЛЬТАТОМ -t 0 -a ПОЛЬЗОВАТЕЛЬ/ПАРОЛЬ > ИМЯФАЙЛАДЛЯОШИБОК 2>&1

с идеей попытаться так ускорить запрос, чтобы MS Access не выделывался.
...
Рейтинг: 0 / 0
время выполнения запроса
    #33595420
const64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaЧай, не из MS Access его выполняете? Смахивает на его фокусы. SQL0952N намекает, что запрос выполнялся, но его отменил кто-то нетерпеливый.


Еще иногда помогает убрать в параметрах Access-а (правка/поиск) все галки в разделе "Подтверждение".

А имеет ли значение какой запрос (в контексте): выборка или модификация данных?
...
Рейтинг: 0 / 0
время выполнения запроса
    #33609331
OLGA_SH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, кто ответил, извините за молчание - не было доступа к инету.
Запрос выполняется из command centra или из dbexplorera - разницы никакой.
Почему оттуда? Для тестирования, если работает - загоняю в прикладное ПО, которое работает на delphi
...
Рейтинг: 0 / 0
время выполнения запроса
    #33609333
OLGA_SH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, индексы обновляются раз в неделю
...
Рейтинг: 0 / 0
время выполнения запроса
    #33609496
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чуть-чуть погуглил, люди пишут в таком духе:
If there is no entry in the db2cli.ini file, then the default value is used (Refer the manual for the default value)

Your db2cli.ini file may read something like :

[DEVEL]
DBALIAS=DEVEL
QUERYTIMEOUTINTERVAL=500
Но тогда странно, почему я на такое ни разу не нарывался.
...
Рейтинг: 0 / 0
время выполнения запроса
    #33609497
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLGA_SHДа, индексы обновляются раз в неделю
Круто!
...
Рейтинг: 0 / 0
время выполнения запроса
    #33609820
OLGA_SH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините еще раз, в DB2 я не спец, что значит круто? Понятно, что если бы я знала в чем дело, то не обратилась бы с вопросом. Профессионалами не рождаются :)
...
Рейтинг: 0 / 0
время выполнения запроса
    #33610877
const64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Попробуйте выполнить Ваш запрос до обновления статистики, и сразу после, и сравните результат.

Еще можно посмотреть как будет выполняться запрос при разных уровнях оптимизации (конечно, маловероятно, что в этом дело...)

P.S. Интересно было-бы посмотреть на запрос (да и на схему данных).

С уважением, Константин.
...
Рейтинг: 0 / 0
время выполнения запроса
    #33611062
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если запрос выполняется неоправданно долго, то два варианта:
1) висит на блокировке
2) где-то появляется что-то типа декартова произветения.

На каком уровне изоляции все это происходит? может в крнце запроса просто дописать WITH UR?
Посмотрите хотябы на план запроса в visual Explain или через dynexpln?
...
Рейтинг: 0 / 0
время выполнения запроса
    #33611674
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLGA_SHИзвините еще раз, в DB2 я не спец, что значит круто? Понятно, что если бы я знала в чем дело, то не обратилась бы с вопросом. Профессионалами не рождаются :)

Ага, становятся. Но в данной отрасли ими становятся, читая книжки, документацию, и пользуясь Google и Yandex. Я понимаю, что сразу всего не перечитаешь. Но не знать, когда обновляются индексы, и чем это отличается от сбора статистики по индексам... это нехорошо.

Что касается QUERYTIMEOUTINTERVAL, что я нашёл в Google по слову SQL0952N:

http://support.mdl.ru/Pc_compl/Doc/Db2/v7.1/ru/Html/db2iy/frame3.htm#db2iy75QUERYTIMEOUTINTERVAL

Описание ключевого слова:
Задержка (в секундах) между проверками истечения срока для запроса

Синтаксис ключевого слова в db2cli.ini:
QUERYTIMEOUTINTERVAL = 0 | положительное целое число

Значение по умолчанию:
5 секунд

Закладка Параметры DB2 CLI/ODBC:
Это ключевое слово нельзя задать с помощью записной книжки Параметры CLI/ODBC. Чтобы его использовать, надо изменять непосредственно файл db2cli.ini.

Замечания по использованию:


Программа может использовать для задания атрибута SQL_ATTR_QUERY_TIMEOUT оператора функцию SQLSetStmtAttr(). Эта функция задает срок ожидания в секундах выполнения оператора SQL до возврата управления в программу.

Ключевое слово QUERYTIMEOUTINTERVAL конфигурации используется для задания того, сколько времени драйвер CLI должен ждать до очередной проверки, не завершился ли запрос.

Предположим, для SQL_ATTR_QUERY_TIMEOUT задано значение 25 секунд (после 25 секунд ожидания фиксировать истечение срока), а для QUERYTIMEOUTINTERVAL - 10 секунд (проверять запрос каждые 10 секунд). В результате истечение срока не будет определено ранее 30 секунд (первая проверка ПОСЛЕ истечения 25 секунд).

Возможны случаи, когда для SQL_ATTR_QUERY_TIMEOUT задано слишком малое значение, и реально истечение срока для запроса фиксировать не надо. Если программу изменить нельзя (например, программа ODBC создана другим разработчиком), можно задать для QUERYTIMEOUTINTERVAL значение 0, и драйвер CLI будет игнорировать значение SQL_ATTR_QUERY_TIMEOUT.

(Эта опция содержится в разделе Common файла инициализации, поэтому она действует на все соединения с DB2.)

Надо найти установленную DB2 (предположим, c:\program files\ibm\sqllib) и открыть там db2cli.ini (предположим, c:\program files\ibm\sqllib\db2cli.ini) Far'ом, Notepad'ом или чем-то в этом духе, и написать в нём наподобие
Код: plaintext
1.
2.
3.
[ИМЯВАШЕЙБАЗЫ]
DBALIAS=ИМВАШЕЙЯБАЗЫ
QUERYTIMEOUTINTERVAL=ВЕЛИЧИНАТАЙМАУТА
...
Рейтинг: 0 / 0
время выполнения запроса
    #33611732
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я понимаю, имеет значение DB2CLI.INI на клиентской части (на той машине, откуда делается запрос).
...
Рейтинг: 0 / 0
время выполнения запроса
    #33613188
OLGA_SH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за советы. Завтра попробую изменить DB2CLI.INI, напишу, что получилось.
...
Рейтинг: 0 / 0
время выполнения запроса
    #33613327
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А из чего к DB2 ходите? Если из Delphi, к примеру, TimeOut на выполнение запроса (процедуры) можно задавать программно.
...
Рейтинг: 0 / 0
время выполнения запроса
    #33615625
OLGA_SH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо!!!!Огромное!!!
Помогло изменение QUERYTIMEOUTINTERVAL.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / время выполнения запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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