powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Помощь по работе таблице
3 сообщений из 3, страница 1 из 1
Помощь по работе таблице
    #39121014
Александр Тарасенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой вопрос возник ...
есть таблица. На ней куча индексов.
Раньше все выполнялось достаточно быстро, индексы в Наглядном объяснении использовались.
Однако что-то произошло, и время выполнения простейшего запроса 2 полей стало занимать 2-3-4 сек.
Индексы стоят, в IBM Studio в Наглядном объяснении показывает, что они должны использоваться.
Статистику обновил.
Данных больше не стало в таблице, критически больше.
Однако, такое полновесное ощущение. что индексы не подхватываются и идет простой перебор данных.
Подскажите плиз, как реально увидеть, используются ли индексы и в чем может быть (если не это) причина такого внезапного нчала работы в 10 раз медленнее таблицы, с которой ничего не делали.
Даже простая выборка 2 полей по индексу занимать стала кучу времени.
...
Рейтинг: 0 / 0
Помощь по работе таблице
    #39121106
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Индексы не являются чем-то, что волшебным образом ускоряет выполнение запроса, если используются, а сбор статистики может быть проведён весьма по-разному.

"Плясать" нужно от понимания физического устройства диска. Осознавания факта, что на нынешних дисках подвод головок очень медленный, передача данных очень быстрая. В результате одни и те же N блоков могут быть считаны одноблочными или многоблочными чтениями, (очень грубый) расчёт времени
1*OVERHEAD + N*TRANSFERRATE для многоблочного
N*OVERHEAD + N*TRANSFERRATE для одноблочного
и разница во скорости между ними гигантская. Где многоблочными чтениями получаете сотню мег в секунду, одноблочными получаете ~1-3 мега в секунду.

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

Есть ещё такие факторы (в порядке вспоминания),
* версия СУБД
* использование RAID'а (плюс неудачное разбиение, неудачное выравнивание),
* величина буферного пула,
* величина памяти под сортировку и хешджойны
* как собрана статистика (собрано ли распределение, количество частот и квантилей, расширенная статистика индексов, многоколоночная статистика)
* разумное задание PAGESIZE, OVERHEAD, TRANSFERRATE, EXTENTSIZE, PREFETCHSIZE
* физическая упорядоченность данных в таблице
* фрагментация индексов
* наличие подходящих индексов

короче, надо просто и всего лишь представлять, как оно внутри работает. Что происходит, когда вы посылаете запрос СУБД. Почему выбран такой-то план и почему такие цифры в стоимости.

Без этого... ну... выполните
reorg table xxx (индексы тоже перестроятся), возможно, using какой-то-индекс (но надо понимать, какой)
runstats on table xxx with distribution and detailed indexes all
может, и поможет.
...
Рейтинг: 0 / 0
Помощь по работе таблице
    #39122638
Александр Тарасенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaИндексы не являются чем-то, что волшебным образом ускоряет выполнение запроса, если используются, а сбор статистики может быть проведён весьма по-разному.

...

спасибо, буду повышать уровень понимания DB2
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Помощь по работе таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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