|
|
|
Пробиться хинтом сквозь вьюшку
|
|||
|---|---|---|---|
|
#18+
Почитал один топик, насчёт того, что имя таблицы в хинте должно появляться именно в таком виде, как оно указано в FROM. Т.е. если там алиас, то в хинт идёт алиас.\r \r Теперь вопрос -- а если у меня в FROM стоит выборки из представления?\r То есть, есть view типа\r Код: plaintext 1. 2. 3. 4. и есть запрос \r Код: plaintext 1. 2. 3. \r Вопрос -- что нужно указывать в хинте: A, C, SOME_TABLE или SOME_TABLE_R.\r Сколько пробовал -- у меня на 8.1.7.4.0 на HP-UX при указании в хинте "C" индекс используется, а у клиента, на 8.1.7.4.0, но Солярисе, всё сваливается на HASH_JOIN и выбирает совершенно непрогнозируемый набор... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2003, 16:22 |
|
||
|
Пробиться хинтом сквозь вьюшку
|
|||
|---|---|---|---|
|
#18+
Маленькое допонение: Индекс st_ind1 по CENTRE + CRD_F. Оба поля VARCHAR, но содержат только цифры. Сортировка идёт по CENTRE, CRD_F , а не просто по CRD_F. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2003, 16:59 |
|
||
|
Пробиться хинтом сквозь вьюшку
|
|||
|---|---|---|---|
|
#18+
Zapros bydet razvernut:: SELECT * FROM ( SELECT CENTRE, CRD_F, FIELD1, ... FROM SOME_TABLE ST WHERE CENTRE IN (SELECT CENTRE FROM CENTRE_USERS WHERE CU=USERNAME)) C WHERE C.CENTRE = 'AAAA' AND C.CRD_F>= :d2 ORDER BY CRD_F; Poetomy logichnei sdelat':: SELECT /*+ LEADING ( SOME_TABLE) PUSH_SUBQ INDEX(SOME_TABLE, st_ind1)*/ C.* FROM SOME_TABLE_R C WHERE C.CENTRE = 'AAAA' AND C.CRD_F>= :d2 ORDER BY C.CRD_F; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2003, 18:25 |
|
||
|
Пробиться хинтом сквозь вьюшку
|
|||
|---|---|---|---|
|
#18+
(В сторону) ... мой русский становится всё ужасней и ужасней :) 2 Oracle X-pert: Спасибо за объяснение. Единственное, я не совсем понял, а зачем ему PUSH_SUBQ -- план в обоих случаях (с ним и без) был одинаковым... Впрочем, в приложении всё решили другим путём -- прижали через +RULE и всё тоже заработало как надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2003, 02:45 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32149614&tid=1990800]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
78ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 425ms |

| 0 / 0 |
