Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 RBO in Oracle 10gR2  [new]
Ora1999
Guest
Ребята, читаю доку про 10ку и не могу понять (английский)
RBO работает в 10ке или нет?

Заранее благодарен
27 авг 07, 12:49    [4578799]     Ответить | Цитировать Сообщить модератору
 Re: RBO in Oracle 10gR2  [new]
Dimka9
Member

Откуда: Владивосток
Сообщений: 1851
какая фраза вас смущает?
27 авг 07, 12:51    [4578817]     Ответить | Цитировать Сообщить модератору
 Re: RBO in Oracle 10gR2  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Вроде как есть, но "для внутреннего употребления" (т.е. не для юзеров) :)
27 авг 07, 12:52    [4578825]     Ответить | Цитировать Сообщить модератору
 Re: RBO in Oracle 10gR2  [new]
Ora1999
Guest
Скажем так,
у меня есть одна база крутится на 9ке, там стоит RBO и её нельзя менять на CBO(слишком замудренная)
теперь хочу её смигрировать на 10ку R2,
читаю доку, пишут мол не поддерживается но существует,
значит ли данное утверждение что я могу смигрировать базу и она будет продолжать работать в режиме RBO.

p.s. Вопрос о переходе на CBO и тестировании еще в процессе, может затянуться, а я ждать не могу
27 авг 07, 13:02    [4578922]     Ответить | Цитировать Сообщить модератору
 Re: RBO in Oracle 10gR2  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116210
RBO работает, но он desupported

В чем преимущество дестяой версии
27 авг 07, 13:13    [4579016]     Ответить | Цитировать Сообщить модератору
 Re: RBO in Oracle 10gR2  [new]
Ora1999
Guest
Как я понял можно заставить работать RBO на уровне запросов применяя хинты,
а на уровне экземпляра, нельзя выставить параметр optimizer_mode=RULE ?? дабы не менять все запросы на запросы с хинтами
27 авг 07, 13:31    [4579183]     Ответить | Цитировать Сообщить модератору
 Re: RBO in Oracle 10gR2  [new]
pravednik
Member

Откуда: Jacksonville, FL
Сообщений: 16268
Ora1999
Как я понял можно заставить работать RBO на уровне запросов применяя хинты,
а на уровне экземпляра, нельзя выставить параметр optimizer_mode=RULE ?? дабы не менять все запросы на запросы с хинтами

в 10-ке нельзя
27 авг 07, 13:32    [4579195]     Ответить | Цитировать Сообщить модератору
 Re: RBO in Oracle 10gR2  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116210
Ora1999
Как я понял можно заставить работать RBO на уровне запросов применяя хинты,
а на уровне экземпляра, нельзя выставить параметр optimizer_mode=RULE ?? дабы не менять все запросы на запросы с хинтами


Можно

SQL> alter session set optimizer_mode = RULE
  2  /
 
Session altered
 
SQL> select * from dba_jobs_running
  2  /
 
       SID        JOB   FAILURES LAST_DATE   LAST_SEC THIS_DATE   THIS_SEC   INSTANCE
---------- ---------- ---------- ----------- -------- ----------- -------- ----------
       104     118576                                 27.08.2007  11:35:02          1
 
SQL> explain plan for
  2  select * from dba_jobs_running
  3  /
 
Explained
 
SQL> select * from table(dbms_xplan.display)
  2  /
 
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 2058443801
-------------------------------------------------------
| Id  | Operation                        | Name       |
-------------------------------------------------------
|   0 | SELECT STATEMENT                 |            |
|   1 |  MERGE JOIN                      |            |
|   2 |   SORT JOIN                      |            |
|   3 |    MERGE JOIN                    |            |
|   4 |     SORT JOIN                    |            |
|   5 |      NESTED LOOPS OUTER          |            |
|*  6 |       FIXED TABLE FULL           | X$KSQRS    |
|   7 |       TABLE ACCESS BY INDEX ROWID| JOB$       |
|*  8 |        INDEX UNIQUE SCAN         | I_JOB_JOB  |
|*  9 |     SORT JOIN                    |            |
|* 10 |      VIEW                        | GV$_LOCK   |
|  11 |       UNION-ALL                  |            |
|* 12 |        VIEW                      | GV$_LOCK1  |
|  13 |         UNION-ALL                |            |
|* 14 |          FIXED TABLE FULL        | X$KDNSSF   |
 
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
|* 15 |          FIXED TABLE FULL        | X$KSQEQ    |
|* 16 |        FIXED TABLE FULL          | X$KTADM    |
|* 17 |        FIXED TABLE FULL          | X$KTATRFIL |
|* 18 |        FIXED TABLE FULL          | X$KTATRFSL |
|* 19 |        FIXED TABLE FULL          | X$KTATL    |
|* 20 |        FIXED TABLE FULL          | X$KTSTUSC  |
|* 21 |        FIXED TABLE FULL          | X$KTSTUSS  |
|* 22 |        FIXED TABLE FULL          | X$KTSTUSG  |
|* 23 |        FIXED TABLE FULL          | X$KTCXB    |
|* 24 |   SORT JOIN                      |            |
|* 25 |    FIXED TABLE FULL              | X$KSUSE    |
-------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   6 - filter("R"."KSQRSIDT"='JQ')
   8 - access("J"."JOB"(+)="R"."KSQRSID2")
   9 - access("RADDR"="R"."ADDR")
       filter("RADDR"="R"."ADDR")
  10 - filter("INST_ID"=USERENV('INSTANCE'))
 
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
  12 - filter("INST_ID"=USERENV('INSTANCE'))
  14 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND
              BITAND("KSSOBFLG",1)<>0)
  15 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND
              BITAND("KSSOBFLG",1)<>0)
  16 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND
              BITAND("KSSOBFLG",1)<>0)
  17 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND
              BITAND("KSSOBFLG",1)<>0)
  18 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND
              BITAND("KSSOBFLG",1)<>0)
  19 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND
              BITAND("KSSOBFLG",1)<>0)
  20 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND
              BITAND("KSSOBFLG",1)<>0)
  21 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND
              BITAND("KSSOBFLG",1)<>0)
  22 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND
              BITAND("KSSOBFLG",1)<>0)
  23 - filter(("KSQLKMOD"<>0 OR "KSQLKREQ"<>0) AND
              BITAND("KSSPAFLG",1)<>0)
 
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
  24 - access("SADDR"="S"."ADDR")
       filter("SADDR"="S"."ADDR")
  25 - filter("S"."INST_ID"=USERENV('INSTANCE'))
Note
-----
   - rule based optimizer used (consider using cbo)
 
69 rows selected
 
SQL> 

Но Oracle очень не рекомендует (даже в плане написали) :-)

автор
Note
-----
- rule based optimizer used (consider using cbo)
27 авг 07, 13:37    [4579243]     Ответить | Цитировать Сообщить модератору
 Re: RBO in Oracle 10gR2  [new]
Ora1999
Guest
Спасибо,
это получается на уровне сессии тоже можно, надо будет создавать триггер для подсоединения.
А на уровне базы значит нельзя или можно?

сорри за настырность
27 авг 07, 13:55    [4579385]     Ответить | Цитировать Сообщить модератору
 Re: RBO in Oracle 10gR2  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116210
Ora1999
Спасибо,
это получается на уровне сессии тоже можно, надо будет создавать триггер для подсоединения.
А на уровне базы значит нельзя или можно?

сорри за настырность


Вы на что меня толкаете ? Я не хочу менять параметр на уровне базы
ОК, давайте глянем по - другому

SQL> select name, isses_modifiable, issys_modifiable
  2  from v$parameter
  3  where name = 'optimizer_mode'
  4  /
 
NAME                                                                             ISSES_MODIFIABLE ISSYS_MODIFIABLE
-------------------------------------------------------------------------------- ---------------- ----------------
optimizer_mode                                                                   TRUE             IMMEDIATE
 
SQL> 
27 авг 07, 14:03    [4579464]     Ответить | Цитировать Сообщить модератору
 Re: RBO in Oracle 10gR2  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Ora1999
Спасибо,
это получается на уровне сессии тоже можно, надо будет создавать триггер для подсоединения.
А на уровне базы значит нельзя или можно?

сорри за настырность



Oracle® Database Reference 10g Release 2 (10.2)

OPTIMIZER_MODE = { first_rows_[1 | 10 | 100 | 1000] | first_rows | all_rows }
27 авг 07, 14:03    [4579467]     Ответить | Цитировать Сообщить модератору
 Re: RBO in Oracle 10gR2  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116210
tru55
Ora1999
Спасибо,
это получается на уровне сессии тоже можно, надо будет создавать триггер для подсоединения.
А на уровне базы значит нельзя или можно?

сорри за настырность



Oracle® Database Reference 10g Release 2 (10.2)

OPTIMIZER_MODE = { first_rows_[1 | 10 | 100 | 1000] | first_rows | all_rows }


Скрывают, демоны !
Не дать никакого шанса RBO !
"А будут возражать, отключим воду"
27 авг 07, 14:06    [4579503]     Ответить | Цитировать Сообщить модератору
 Re: RBO in Oracle 10gR2  [new]
--+
Guest
dmidek
tru55
Ora1999
Спасибо,
это получается на уровне сессии тоже можно, надо будет создавать триггер для подсоединения.
А на уровне базы значит нельзя или можно?

сорри за настырность



Oracle® Database Reference 10g Release 2 (10.2)

OPTIMIZER_MODE = { first_rows_[1 | 10 | 100 | 1000] | first_rows | all_rows }


Скрывают, демоны !
Не дать никакого шанса RBO !
"А будут возражать, отключим воду"


Есть такой параметр
optimizer_features_enable='9.2.0'

ПыСЫ: убегайте от него, проблем всё-равно будет море, а в будущем еще больше!
27 авг 07, 14:11    [4579556]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить