mercoledì 4 settembre 2019

OBIEE 12C - Purge Usage Tracking

Una volta attivato lo Usage Tracking su OBIEE occorre tenere sotto controllo le tabelle in cui vengono memorizzate le query e pensare ad uno svecchiamento delle stesse. Nelle tabelle vengono memorizzate in dei campi CLOB le query effettuate ed a lungo andar questo provoca un aumento dello spazio occupato.
Le tabelle impattate fondamentalmente sono s_nq_db_acct e s_nq_acct, collegate tra loro tramite FK.

Per verificare l'effettiva dimensione occupata dalla due tabelle si può utilizzare la seguente query:

SELECT SUM(BYTES)/1024/1024 "Real Meg" FROM DBA_SEGMENTS
WHERE SEGMENT_NAME IN (
  SELECT VAL FROM (
    SELECT TABLE_NAME, SEGMENT_NAME, INDEX_NAME FROM DBA_LOBS
    WHERE TABLE_NAME = :TABLE_NAME AND OWNER= :OWNER
  )
  UNPIVOT(VAL FOR COL IN(TABLE_NAME, SEGMENT_NAME, INDEX_NAME))
)


Per effettuare la purge dei dati si può procedere nel seguente modo:

begin
   execute immediate 'delete from <SCHEMA>.s_nq_db_acct where start_dt < (sysdate - 90);
   commit;
 
   execute immediate 'delete from
<SCHEMA>.s_nq_acct where start_dt < (sysdate - 90);
   commit;

   -- Enable row_movement
   execute immediate 'alter table
<SCHEMA>.s_nq_db_acct enable row movement';
   execute immediate 'alter table
<SCHEMA>.s_nq_acct enable row movement';
 
   -- Shrink space tables and Indexes
   execute immediate 'alter table
<SCHEMA>.s_nq_db_acct shrink space cascade';
   execute immediate 'alter table
<SCHEMA>.s_nq_acct shrink space cascade';
 
   -- Shrink space LOB segments
   execute immediate 'alter table
<SCHEMA>.s_nq_db_acct modify lob (query_blob) (shrink space)';
   execute immediate 'alter table
<SCHEMA>.s_nq_acct modify lob (query_blob) (shrink space)';
 
end;


 Al termine si potrebbe anche pensare di fare una resize dei datafiles associati al tablespace in modo da recuperare spazio disco.


Nessun commento:

Posta un commento