|
|
|
оптимизатор всегда прав?
|
|||
|---|---|---|---|
|
#18+
Cтоимостный оптимизатор при выборке данных делает full table scan. И действительно, делать это выгодней, чем пользоваться индексом. Как заставить его все-таки пользовать индекс. Пусть это будет медленней, но мне так нужно. Хинты не помогают. Есть ли вообще шанс заставить его работать так, как хочу я. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 17:43 |
|
||
|
оптимизатор всегда прав?
|
|||
|---|---|---|---|
|
#18+
вроде подсказку RULE испоьзуй если очень надо оптимизатор по правилам использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 17:53 |
|
||
|
оптимизатор всегда прав?
|
|||
|---|---|---|---|
|
#18+
читай про optimizer_index_caching и optimizer_index_cost_adj в init.ora например optimizer_index_caching=95 optimizer_index_cost_adj=5 Хинты ЗАСТАВЛЯЮТ использовать индекс, если это вообще возможно. Или неправильно хинт пишешь, или запрос такой что индекс не используется в любом из рассматриваемых оптимизатором вариантов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 17:54 |
|
||
|
оптимизатор всегда прав?
|
|||
|---|---|---|---|
|
#18+
Запрос и "неработающие" варианты хинтов - в студию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 17:57 |
|
||
|
оптимизатор всегда прав?
|
|||
|---|---|---|---|
|
#18+
to ora600:Эти параметры я уже поставил, 95 и 1 соответственно.Он даже в этом случае не хочет индекс использовать и правильно делает, потому что записей в таблице мало и выгодней делать full scan. Вопрос был, можно ли заставить его пользоваться индексом, даже если, он думает иначе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 18:53 |
|
||
|
оптимизатор всегда прав?
|
|||
|---|---|---|---|
|
#18+
Изначально запрос такой: Код: plaintext 1. 2. 3. ind1 = (f1,f2) - неуникальный индекс. Пытался делать с хинтом /*+FIRST_ROWS INDEX_ASC("t" "ind1")*/. Тоже TABLE ACCESS FULL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 19:02 |
|
||
|
оптимизатор всегда прав?
|
|||
|---|---|---|---|
|
#18+
/*+ index(ind1 to)*/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 19:05 |
|
||
|
оптимизатор всегда прав?
|
|||
|---|---|---|---|
|
#18+
>/*+ index(ind1 to)*/ ну уж правильно будет вот так: /*+ index(to ind1)*/ А индекс в запросе с хинтом не используется потому, что у вас эти поля не NOT NULL, или укажите в запросе: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 19:15 |
|
||
|
оптимизатор всегда прав?
|
|||
|---|---|---|---|
|
#18+
Все поля в этой таблице описаны при создании как not null. Добавление is not null не помогло:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 19:30 |
|
||
|
оптимизатор всегда прав?
|
|||
|---|---|---|---|
|
#18+
Когда вместо select * делаю select f1,f2 индекс используется.Как только к этому добавляю еще какое-нибудь поле-full table scan. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 19:34 |
|
||
|
оптимизатор всегда прав?
|
|||
|---|---|---|---|
|
#18+
а можно полные примеры - запрос, план с костом, результат (если говорите, что небольшой)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 19:41 |
|
||
|
оптимизатор всегда прав?
|
|||
|---|---|---|---|
|
#18+
Чудеса! Может вы в курсе такого дела? Вобщем выполняю запрос: Код: plaintext 1. 2. 3. 4. Его план: Код: plaintext 1. 2. 3. А изначально я выполнял запрос вот такой c синонимом: Код: plaintext 1. 2. 3. 4. И вот его план: Код: plaintext 1. 2. Надобно отказываться от синонимов? Но почему его это смущает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 20:24 |
|
||
|
оптимизатор всегда прав?
|
|||
|---|---|---|---|
|
#18+
Oracle8i Designing and Tuning for Performance Release 2 (8.1.6) Part Number A76992-01 Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 20:28 |
|
||
|
оптимизатор всегда прав?
|
|||
|---|---|---|---|
|
#18+
Спасибо огромное!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 20:30 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=52&tid=1991077]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
185ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 520ms |

| 0 / 0 |
