Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
19.03.2007, 09:47
|
|||
|---|---|---|---|
Почему индекс не "хватается"? |
|||
|
#18+
Запрос : select max(doc_num) from my.docs where doc_num > 99999 Есть индекс по doc_num, это поле не уникальное... Индекс не берется, Explain показывает full table scan.... Может кто знает почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.03.2007, 10:28
|
|||
|---|---|---|---|
|
|||
Почему индекс не "хватается"? |
|||
|
#18+
Статистика собрана? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.03.2007, 12:45
|
|||
|---|---|---|---|
Почему индекс не "хватается"? |
|||
|
#18+
А если добавить OPTIMIZE FOR N ROWS? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.03.2007, 12:46
|
|||
|---|---|---|---|
Почему индекс не "хватается"? |
|||
|
#18+
Сорри... бред сказал... не посмотрел внимательно. ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.03.2007, 14:38
|
|||
|---|---|---|---|
Почему индекс не "хватается"? |
|||
|
#18+
Собрал еще раз на всякий случай... Результат тот же... Я вот удивляюсь, всегда думал, что должен использоваться.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.03.2007, 14:58
|
|||
|---|---|---|---|
|
|||
Почему индекс не "хватается"? |
|||
|
#18+
После runstats on table my.docs and indexes all табличное сканирование тоже? Сколько записей в таблице? Уровень оптимизации какой? Какой план запроса без условия where? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.03.2007, 16:25
|
|||
|---|---|---|---|
Почему индекс не "хватается"? |
|||
|
#18+
В таблице порядка 200тыс. записей... Уровень оптимизации по умолчанию, 5 скорее всего... Хм... Интересно, что план запроса без фильтрации по полю точно такой же... И вот еще чего, он стал цеплять другой индекс... (id, doc_num), этот индекс уникальный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.03.2007, 12:37
|
|||
|---|---|---|---|
|
|||
Почему индекс не "хватается"? |
|||
|
#18+
Значит сервер не считает, что используя индекс по этому полю, ему придётся провести меньший объём операций ввода/вывода, чем при чтении сразу же страниц таблицы. Сравните значения по этим двум индексам: select * from syscat.indexes where tabname = 'XXX' Принято считать, что использование индекса оправдывает себя (ведь страницы индекса тоже надо понять с накопителя), если его кардинальность равна 3...5% (количество строк от их общего числа на лист индексирующего дерева). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.03.2007, 12:00
|
|||
|---|---|---|---|
Почему индекс не "хватается"? |
|||
|
#18+
Свойство CARDINALITY(так пишется?) можно у определенного индекса посмотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.03.2007, 12:14
|
|||
|---|---|---|---|
|
|||
Почему индекс не "хватается"? |
|||
|
#18+
TORTСвойство CARDINALITY(так пишется?) можно у определенного индекса посмотреть? SYSCAT.INDEXES.FULLKEYCARD ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2007, 11:19
|
|||
|---|---|---|---|
Почему индекс не "хватается"? |
|||
|
#18+
И какие поля надо обсчитывать для определения кардинальности? FIRSTKEYCARD / FULLKEYCARD * 100? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2007, 11:55
|
|||
|---|---|---|---|
|
|||
Почему индекс не "хватается"? |
|||
|
#18+
TORTИ какие поля надо обсчитывать для определения кардинальности? FIRSTKEYCARD / FULLKEYCARD * 100?Вопрос не понял. Что значит "обсчитывать"? Кардинальность (cardinality) индекса (или первых n его полей) - это число различных значений всего индекса (или первых его n полей). Кардинальность уникального индекса = кол-ву записей в таблице. Кардинальность первых n полей индекса - функция от n монотонно не убывающая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2007, 12:02
|
|||
|---|---|---|---|
Почему индекс не "хватается"? |
|||
|
#18+
И хранится она в поел поле SYSCAT.INDEXES.FULLKEYCARD? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2007, 12:07
|
|||
|---|---|---|---|
Почему индекс не "хватается"? |
|||
|
#18+
Вот еще чего не понимаю.... Я протестировал запрос в утилите db2advis... Она посоветовала создать 2 индекса, при создании и сборе статистики CLUSTERRATIO для этих индексов 17.... В документации написано, что если CLUSTERRATIO не высок, то оптимизатор с очень большой вероятностью его пропустит... Хотя тест показывает, что индекс стал использоваться, и запрос действительно стал выполняться живее... Чего-то это никак не выстраивается в логическую цепочку.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2007, 12:08
|
|||
|---|---|---|---|
|
|||
Почему индекс не "хватается"? |
|||
|
#18+
TORTИ хранится она в поел поле SYSCAT.INDEXES.FULLKEYCARD?Там же (по ссылке) написано: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2007, 12:09
|
|||
|---|---|---|---|
|
|||
Почему индекс не "хватается"? |
|||
|
#18+
TORTВот еще чего не понимаю.... Я протестировал запрос в утилите db2advis... Она посоветовала создать 2 индекса, при создании и сборе статистики CLUSTERRATIO для этих индексов 17.... В документации написано, что если CLUSTERRATIO не высок, то оптимизатор с очень большой вероятностью его пропустит... Хотя тест показывает, что индекс стал использоваться, и запрос действительно стал выполняться живее... Чего-то это никак не выстраивается в логическую цепочку....Кластеризация индекса и его кардинальность - 2 абсолютно разные вещи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2007, 12:11
|
|||
|---|---|---|---|
Почему индекс не "хватается"? |
|||
|
#18+
Виноват... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2007, 12:12
|
|||
|---|---|---|---|
Почему индекс не "хватается"? |
|||
|
#18+
Кластеризация - это упорядоченность хранения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2007, 12:17
|
|||
|---|---|---|---|
Почему индекс не "хватается"? |
|||
|
#18+
Возвращаясь к началу темы: Выгоднее сделать select doc_num from my.docs where doc_num > 99999 order by my.docs desc fetch first 1 row only optimize for 1 row ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2007, 12:34
|
|||
|---|---|---|---|
|
|||
Почему индекс не "хватается"? |
|||
|
#18+
TORTКластеризация - это упорядоченность хранения? Тут почитайте. TORT Выгоднее сделать select doc_num from my.docs where doc_num > 99999 order by my.docs desc fetch first 1 row only optimize for 1 rowНе понятно, почему вы не хотите использовать логический эквивалент этого запроса: Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2007, 13:22
|
|||
|---|---|---|---|
Почему индекс не "хватается"? |
|||
|
#18+
А если еще добавить ALLOW REVERSE SCANS ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2007, 13:40
|
|||
|---|---|---|---|
Почему индекс не "хватается"? |
|||
|
#18+
Вообщем проблема с select max(...) кажется решилась..... Я вот не пойму зачем я добавлял условие 'where doc_num > ...'... личное горе.... А на самом деле помогло пересоздание индекса с опцией allow reverse scans... В общем ошибка моя при создании индекса... Спасибо всем ответившим.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=43&tablet=1&tid=1604701]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 332ms |

| 0 / 0 |
