dbms_sqltune grant

grant select on sys.v_$sql_monitor to CDI;
grant select on sys.NLS_SESSION_PARAMETERS to CDI;
grant select on sys.DBA_HIST_REPORTS_DETAILS to CDI;
grant select on sys.kopm$  to CDI;
grant select on sys.X$KSPPI  to CDI;
grant select on SYS.X$KSPPCV to CDI;
grant select on sys."_REPORT_COMPONENT_OBJECTS" to CDI;
grant select on sys.REPORT_COMPONENTS to CDI;
grant select on sys."_REPORT_FORMATS"  to CDI;
grant select on sys."_REPORT_COMPONENT_OBJECTS"  to CDI;

Запросы текущие

select m.LAST_REFRESH_TIME, m.sql_text
,dbms_sqltune.report_sql_monitor(sql_id => m.sql_id, type => 'HTML', report_level => 'ALL') AS report
from  sys.v_$sql_monitor m
where m.sid = 1345 --and m.session_serial# = :serial#
order by m.LAST_REFRESH_TIME desc
 
__________________________________________________________
SELECT * FROM
(SELECT
    sql_fulltext,
    sql_id,
    first_load_time,
    last_load_time
FROM    v$sql

Планы

EXPLAIN PLAN FOR select ...;
 
 
select * from table(dbms_xplan.display);
 
 
 
 
Можно посмотреть планы вот так:
 
select * from table(dbms_xplan.display_cursor('4aj2y82rdfx97',null,'basic +PEEKED_BINDS'))
 
И сравнить индексный доступ и fullscan. Возможно, на NODE есть гистограмма, которой там быть не должно.
 

Профилирование запросов

 
 
 
@/app/oracle/product/12.1.0/db/rdbms/admin/proftab.sql
 
Running "proftab.sql" creates following objects:
 
PLSQL_PROFILER_RUNS - Run-specific information for the PL/SQL profiler.
PLSQL_PROFILER_UNITS - Information about each library unit in a run.
PLSQL_PROFILER_DATA - Accumulated data from all profiler runs.

Битый блок

SQL> select name, open_mode, log_mode from v$database;
 
NAME      OPEN_MODE            LOG_MODE
--------- -------------------- ------------
CR        READ WRITE           ARCHIVELOG
 
SQL> SELECT * FROM v$database_block_corruption;
 
     FILE#     BLOCK#     BLOCKS CORRUPTION_CHANGE# CORRUPTIO
---------- ---------- ---------- ------------------ ---------
       271    2482861          1                  0 FRACTURED
 
 

Блокировки

select * from v$session_wait sw, v$session s
where s.sid = sw.sid and event = 'enqueue'
 
 
 
select event, status, service_name, wait_class, state, seconds_in_wait  from v$session where sid=1098;
 
 
 
 
 
Можете посмотреть сессию SID=1454 на базе RBOWRK?
Сессия висит с ожиданием LIBRARY CACHE PIN и блокирует другие, в чем может быть проблема?
 
 
 

Курсоры

 
with c as (
select c.sid, c.user_name, count(*)
  from v$open_cursor c
group by c.sid, c.user_name
having count(*) > 50) 
select c.*, s.program from c, v$session s
  where c.sid = s.sid
order by 3 desc
 
select count(*) sessions from v$session;
select count(*) processes from v$process;
select count(*) cursors from v$open_cursor;
 
это посмотреть (у меня уперлось не в курсоры а в сессии)

Трассировка

alter system set events '1426 trace name errorstack level 3'
 
 
или
 
begin
execute immediate 'alter session set timed_statistics=true';
execute immediate 'alter session set tracefile_identifier=''FCS_DATA_MART'''; --FCS_GET_OBJ название трейса
execute immediate 'alter session set events ''10046 trace name context forever, level 12''';
проц какой-нибудь
execute immediate 'alter session set events ''10046 trace name context forever, level 0''';
end;

AWR все

 
дать права тут
 

Необходимые привилегии

Выбить план

 
select ADDRESS, HASH_VALUE from V$SQLAREA where SQL_Id='dmx08r6ayx800';
 
 
ADDRESS                            HASH_VALUE
---------------------------------- ----------
0000000693E4C268                   2515443712
 
 
 
exec DBMS_SHARED_POOL.PURGE ('0000000693E4C268,2515443712','C');
 

Страницы

Подписка на материализация идей RSS