|
|
|
Заюзать индекс
|
|||
|---|---|---|---|
|
#18+
Есть табличка 10-ки млн записей. Делаем запрос: Код: plsql 1. 2. 3. 4. 5. В индекс documents_i создан по (id, doc_date). В таблице есть еще куча объемных полей. Плюс индекс уже как бы отсортирован, но при этом оракл показывает, что хочет фулсканить таблицу, а не индекс. При этом понятно, что ему придется прочитать гораздо больше блоков с диска, чем, если бы он читал индекс. Больше того, на аналогичной таблице такого же плана запрос фулсканит индекс, хотя в той таблице нет ни PK по ID, ни NOT NULL ограничения на ID (так же как и на documents). Вопрос: если отбросить сбор статистики, не сталкивался, но возможно ли принудительно указать ораклу, чтобы он в любом случае использовал индекс (по хинту тоже не подхватывается). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2016, 14:36 |
|
||
|
Заюзать индекс
|
|||
|---|---|---|---|
|
#18+
Avotge, Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2016, 15:04 |
|
||
|
Заюзать индекс
|
|||
|---|---|---|---|
|
#18+
ORA__SQLid и/или doc_date nullable Да, как уже сказал, id nullable, хотя по факту не имеет пустых значений. Попробую создать констрейнт, но интересно, почему на аналогичных таблицах (где Id тоже nullable) такой же запрос сканит индекс, а не таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2016, 15:16 |
|
||
|
Заюзать индекс
|
|||
|---|---|---|---|
|
#18+
Avotge почему на аналогичных таблицах (где Id тоже nullable) такой же запрос сканит индекс, а не таблицу? Потому что предикат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2016, 15:18 |
|
||
|
Заюзать индекс
|
|||
|---|---|---|---|
|
#18+
Avotge Код: plsql 1. Включи мозг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2016, 15:20 |
|
||
|
Заюзать индекс
|
|||
|---|---|---|---|
|
#18+
ElicВключи мозг. Было бы что включать ) Так и что, что order by 1, пишу Код: plsql 1. Ничего не меняется :( Может и туплю конечно. И потом, говорю же, - такой же запрос на других аналогичных таблицах работает по индексу. andrey_anonymousПотому что предикат. Без предиката тоже пробовал и на таблицах, и опять же на таблицах, где работа по индексу без предиката что с предикатом, что без индекс подхватывается. Пока остается только констрейнт добавить, потом глянуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2016, 15:30 |
|
||
|
Заюзать индекс
|
|||
|---|---|---|---|
|
#18+
AvotgeБез предиката тоже пробовал и на таблицах, и опять же на таблицах, где работа по индексу без предиката что с предикатом, что без индекс подхватывается Вот с этого места поподробнее. Если я правильно понял, утверждается что есть ситуация, в которой: - индекс содержит только nullable поля - в запросе нет предикатов, позволяющих оптимизатору понять, что null-значения не нужны - индекс подхватился Пример в студию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2016, 15:33 |
|
||
|
Заюзать индекс
|
|||
|---|---|---|---|
|
#18+
AvotgeТак и что, что order by 1RTFM Analytic Functions: Restrictions on the ORDER BY Clause (FAQ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2016, 15:34 |
|
||
|
Заюзать индекс
|
|||
|---|---|---|---|
|
#18+
авторЕсли я правильно понял, утверждается что есть ситуация, в которой: - индекс содержит только nullable поля - в запросе нет предикатов, позволяющих оптимизатору понять, что null-значения не нужны - индекс подхватился Пример в студию. Фух, уже расстроился, что за чудеса такие, оказалось, в упор не заметил, все верно - где индекс подхватывается ID все-таки не nullable. Вопрос снят, сори. Elic, спасибо, но по ссылке, так и не понял что может быть не так с order by 1 :( (мне же тут как бы и не важна сортировка) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2016, 15:48 |
|
||
|
Заюзать индекс
|
|||
|---|---|---|---|
|
#18+
Avotge(мне же тут как бы и не важна сортировка)Да ну? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2016, 15:49 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=194&tid=1887181]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
56ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 344ms |

| 0 / 0 |
