Грешка в Oracle: ORA-13767 при опит за създаване на базова линия

Sql изразът имаше 2 плана, единият е по-бавен и един по-бърз.
Използвайки хеш стойността, опитах се да създам базова линия, получавам грешка, както следва:

ERROR at line 1:
ORA-13767: End snapshot ID must be greater than begin snapshot ID.
ORA-06512: at "SYS.DBMS_SQLTUNE", line 4715
ORA-06512: at line 21

и открих, че минималният и максималният идентификатор на моментна снимка на плана
, с който исках да създам базова линия, е еднакъв.

Какъв ще бъде начинът да създам базова линия с плана, който искам в този случай?

Благодаря ти за помощта!


person Keibee    schedule 12.09.2014    source източник


Отговори (1)


-- за да избегнете: ORA-13767: Идентификаторът на крайната моментна снимка трябва да е по-голям от ID на началната снимка. -- ако snap_ids са еднакви, тогава намалете началния идентификатор на snap с едно

НАЧАЛО -- Ако не е във V$SQL, ще трябва да отправим запитване към хранилището за натоварване select count(*) в cnt от V$SQLSTATS, където sql_id = '&&sqlid';

IF (cnt > 0) THEN :task_name := dbms_sqltune.create_tuning_task(sql_id => '&&sqlid',scope => DBMS_SQLTUNE.scope_comprehensive,time_limit => 7200); ИНАЧЕ изберете min(snap_id) в bsnap от dba_hist_sqlstat, където sql_id = '&&sqlid';

select max(snap_id) into esnap
from   dba_hist_sqlstat
where  sql_id = '&&sqlid';

-- in order to avoid an: ORA-13767: End snapshot ID must be greater than begin snapshot ID.
-- if the snap_ids are the same, then lower the begin snap id by one
if (:bsnap = :esnap) then
   :bsnap := :bsnap - 1;
end if;

:task_name := dbms_sqltune.create_tuning_task(begin_snap => :bsnap,
                                              end_snap => :esnap,
                                              time_limit => 7200,
                                              sql_id => '&&sqlid',
                                              scope => DBMS_SQLTUNE.scope_comprehensive);

КРАЙ АКО;

dbms_sqltune.execute_tuning_task(:task_name);

person Ravin Maharaj    schedule 26.05.2020