Baúl de queries

En esta sección iré subiendo queries que suelo usar día a día para que mis días sean un poco mas tranquilos.

--Filtro de owners del sistema. Todos los que conozco.
--Cuando queremos excluir, por ejemplo, excluir los objetos propios del motor.
WHERE OWNER not in('QS_CB','PERFSTAT','QS_ADM','PM','SH','HR','OE','ODM_MTR','WKPROXY','ANONYMOUS','OWNER','SYS','SYSTEM',
'SCOTT','SYSMAN','XDB','DBSNMP','EXFSYS','OLAPSYS','MDSYS','WMSYS','WKSYS','DMSYS','ODM','EXFSYS','CTXSYS', 
'LBACSYS','ORDPLUGINS','SQLTXPLAIN','OUTLN','TSMSYS','XS$NULL','TOAD','STREAM','SPATIAL_CSW_ADMIN', 
'SPATIAL_WFS_ADMIN','SI_INFORMTN_SCHEMA','QS','QS_CBADM','QS_CS','QS_ES','QS_OS','QS_WS','PA_AWR_USER', 
'OWBSYS_AUDIT','OWBSYS','ORDSYS','ORDDATA','ORACLE_OCM','MGMT_VIEW','MDDATA','FLOWS_FILES','FLASHBACK', 
'AWRUSER','APPQOSSYS','APEX_PUBLIC_USER','APEX_030200','SPATIAL_WFS_ADMIN_USR','SPATIAL_CSW_ADMIN_USR','DIP') 
--Listar los datafiles de la BD sin el path (solo nombre del datafile)
select substr(name,instr(name,'/',-1)+1) file_name from v$datafile;
--
--
-- Listar SOLO el PATH donde están los datafiles. (2da columna)
SELECT name,
       SUBSTR (name, 1, INSTR (name, '/', -1)) PATH,
       SUBSTR (name,
               INSTR (name, '/', -1) + 1,
               INSTR (SUBSTR (name, INSTR (name, '/', -1) + 1), '.') - 1)
          file_name
  FROM v$datafile;

--Listar Backups: Lista los estados de los backups ejecutados desde RMAN.
--Se formatean las columnas para que sea legible desde una consola (Ej: sqlplus)
SET LINESIZE 300;
SET PAGESIZE 300;
COL START_TIME FORMAT a15;
COL END_TIME FORMAT a15;
COL INPUT_TYPE FORMAT a15;
COL INPUT_BYTES_DISPLAY FORMAT a20;
COL OUTPUT_BYTES_DISPLAY FORMAT a20;
COL TIME_TAKEN_DISPLAY FORMAT a20;

  SELECT START_TIME,
         END_TIME,
         INPUT_TYPE,
         INPUT_BYTES_DISPLAY,
         OUTPUT_BYTES_DISPLAY,
         TIME_TAKEN_DISPLAY,
         STATUS
    FROM v$rman_backup_job_details
ORDER BY START_TIME DESC;

--Chequeo de lockeos en la base: Este query identifica las sesiones que están
--siendo bloqueadas por otras. La columna "BLOCKING_SESSION" identifica
--la sesión que está causando el lockeo. 
--El query es RAC AWARE.
SELECT inst_id,
       sid,
       serial#,
       username,
       status,
       schemaname,
       osuser,
       machine,
       program,
       sql_id,
       logon_time,
       last_call_et,
       blocking_session,
       event,
       state
  FROM gv$session
 WHERE blocking_session is not null;


--Monitoreo RMAN: Este query monitorea la ejecución de los backups ejecutados por RMAN
--Utiliza longops para indicarnos el tiempo estimado restante de finalización.
SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK,
ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE",
TIME_REMAINING
FROM V$SESSION_LONGOPS
WHERE OPNAME LIKE 'RMAN%'
AND OPNAME NOT LIKE '%aggregate%'
AND TOTALWORK != 0
AND SOFAR  TOTALWORK;

--Chequeo GAP en Standby
--Este query chequea el GAP que tenemos entre la base primaria y la standby.
-- Si la Diferencia se encuentra en 0, nuestra standby esta sincronizada con nuestra primaria.
--Este query es RAC AWARE, es decir, aplica también para nuestras bases en RAC
SELECT ARCH.THREAD# "Thread",
         ARCH.SEQUENCE# "Ultima Sequencia Recibida",
         APPL.SEQUENCE# "Ultima Sequencia Aplicada",
         (ARCH.SEQUENCE# - APPL.SEQUENCE#) "Diferencia"
    FROM (SELECT THREAD#, SEQUENCE#
            FROM V$ARCHIVED_LOG
           WHERE (THREAD#, FIRST_TIME) IN (  SELECT THREAD#, MAX (FIRST_TIME)
                                               FROM V$ARCHIVED_LOG
                                           GROUP BY THREAD#)) ARCH,
         (SELECT THREAD#, SEQUENCE#
            FROM V$LOG_HISTORY
           WHERE (THREAD#, FIRST_TIME) IN (  SELECT THREAD#, MAX (FIRST_TIME)
                                               FROM V$LOG_HISTORY
                                           GROUP BY THREAD#)) APPL
   WHERE ARCH.THREAD# = APPL.THREAD#
ORDER BY 1;