Выбить план

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

Фиксация плана

 
explain plan for select t.* from t_plan_test t where t.n1 = 100;
select * from table(dbms_xplan.display);
 
 
Во-первых, необходимо запомнить план первого запроса, взяв его sql_id и plan_hash_value:
 
begin

Rename database

создать spfile
 
alter user system IDENTIFIED BY WSXwsx;
 
SHUTDOWN IMMEDIATE
STARTUP MOUNT
 
nid TARGET=SYSTEM DBNAME=PSISBL
 
 
поменять профиль
 
export ORACLE_SID=CR
STARTUP MOUNT
ALTER SYSTEM SET DB_NAME=PSISBL SCOPE=SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE OPEN RESETLOGS;
 

ASL

 
 
 
SET LINESIZE 300;
SET PAGES 300;
COLUMN host FORMAT A30;

Место в тейблспейсах

 
column "Схема"   format a15;
column "Таблица"   format a15;
 
SELECT a.owner "Схема",
       a.table_name "Таблица",
       b.bytes "Размер (Мб)",
       TRUNC((a.blocks * 100) / b.blocks) "Занято(%)",
       b.extents "Экстентов"
FROM dba_tables a,
     (
        SELECT owner, segment_name, SUM(bytes)/1024/1024 bytes,
               SUM(blocks) blocks, COUNT(*) extents
          FROM dba_extents

Полезные запросы ASM

select   substr(d.name,1,4),d.group_number, sum(d.total_mb), sum(d.free_mb) 
from v$asm_diskgroup dg,v$asm_disk d 
where d.group_number = dg.group_number 
group by substr(d.name,1,4),d.group_number;
 
 
 
select dg.name, d.name, d.path, d.total_mb, d.free_mb
  from v$asm_diskgroup dg, 
       v$asm_disk d
 where d.group_number = dg.group_number
 order by free_mb, 1, 2;
 
 
 
 
 
 
 

Диагностика

select protection_level from v$database;
 
 
show parameter standby_file_management ;
select group#, bytes from v$standby_log;
select name, open_mode, log_mode from v$database;
select recovery_mode from v$archive_dest_status;
 
 select flashback_on from v$database;
 
find  . -name "alert*.log" -exec ls -l -h {} \;
 
 
select name from v$archived_log where rownum <10;
 

Почти все про ресурсные планы

Как найти текущие открытые курсоры в Oracle

DBMS_PROFILER

The DBMS_PROFILER packages gets installed at the time of database creation by default. However prior to Oracle 10g release this package was not installed by default and needs to be created by running "profload.sql" located at $ORACLE_HOME/rdbms/admin folder.

Страницы

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