Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как сделать чтобы быстрее работало / 5 сообщений из 5, страница 1 из 1
18.11.2005, 11:32
    #33386317
dealko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать чтобы быстрее работало
Задача состоит в обработке записей по определённым признакам.
В таблице около 20 млн записе. Кол-во записей требующих обработки доходит иногда до 3 млн.

Приложение со сферы выбирает пачками по 1000 записей, потом обрабатывает эти пачки. Все три миллиона сразу взять не получается - говорят памяти не хватит на сфере.

Обработка идёт влёт. Очень медленно происходит процесс выбора записей по признакам таким оператором:
Код: plaintext
select ID from table where status is null or status= ? fetch first  1000  rows only

Индекс на status есть.

Что можно сделать, чтобы ускорить обработку ?
...
Рейтинг: 0 / 0
18.11.2005, 11:47
    #33386377
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать чтобы быстрее работало
Избавиться в запросе от OR.
Например сделать двумя операторами. Один отберет NULL, другой отберет status=?.
Посмотри план запроса. Наверняка он у тебя сейчас идет в любом случае TABLE SCAN. Поэтому лучше слегка перепроектировать табличку. Типа дефолтные значения навесить либо триггеры before. Т.е. Сделать так, чтобы не нужно было с NULL сравнивать и ставить OR.
...
Рейтинг: 0 / 0
18.11.2005, 12:10
    #33386480
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать чтобы быстрее работало
еще одна фича.
на инстансе сделать
db2set DB2_SELECTIVITY=All
(ну и перезапустить инстанс)

и написать запросы так:
Код: plaintext
1.
select ID from table where status=? selectivity  0 . 000001 
...
Рейтинг: 0 / 0
18.11.2005, 12:17
    #33386508
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать чтобы быстрее работало
select ID from table where status=? selectivity 0.000001 fetch first 1000 rows only
...
Рейтинг: 0 / 0
18.11.2005, 12:27
    #33386533
dealko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать чтобы быстрее работало
Спасибо. Действительно работает гораздо быстрее.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как сделать чтобы быстрее работало / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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