Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помощь по работе таблице
|
|||
|---|---|---|---|
|
#18+
Такой вопрос возник ... есть таблица. На ней куча индексов. Раньше все выполнялось достаточно быстро, индексы в Наглядном объяснении использовались. Однако что-то произошло, и время выполнения простейшего запроса 2 полей стало занимать 2-3-4 сек. Индексы стоят, в IBM Studio в Наглядном объяснении показывает, что они должны использоваться. Статистику обновил. Данных больше не стало в таблице, критически больше. Однако, такое полновесное ощущение. что индексы не подхватываются и идет простой перебор данных. Подскажите плиз, как реально увидеть, используются ли индексы и в чем может быть (если не это) причина такого внезапного нчала работы в 10 раз медленнее таблицы, с которой ничего не делали. Даже простая выборка 2 полей по индексу занимать стала кучу времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2015, 19:45 |
|
||
|
Помощь по работе таблице
|
|||
|---|---|---|---|
|
#18+
Индексы не являются чем-то, что волшебным образом ускоряет выполнение запроса, если используются, а сбор статистики может быть проведён весьма по-разному. "Плясать" нужно от понимания физического устройства диска. Осознавания факта, что на нынешних дисках подвод головок очень медленный, передача данных очень быстрая. В результате одни и те же 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 может, и поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2015, 22:49 |
|
||
|
Помощь по работе таблице
|
|||
|---|---|---|---|
|
#18+
Victor MetelitsaИндексы не являются чем-то, что волшебным образом ускоряет выполнение запроса, если используются, а сбор статистики может быть проведён весьма по-разному. ... спасибо, буду повышать уровень понимания DB2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 18:37 |
|
||
|
|

start [/forum/topic.php?fid=43&tid=1600690]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
82ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 176ms |

| 0 / 0 |
