Páginas

terça-feira, 24 de julho de 2012

Oracle - rebuild/move LOB index

-- Move regular indexes:

select 'alter index '||owner||'.'||index_name||' rebuild tablespace &index_tbs;' from dba_indexes where owner=upper('&owner');

-- Move LOB indexes

select 'alter table '||table_name||' move LOB ('||column_name||') store as '||segment_name||' (tablespace &index_tbs);'from dba_lobs where owner=upper('&owner');

segunda-feira, 16 de julho de 2012

Snapshots - last refresh

Lista a data do último refresh das tabelas que são origem para uma materialized view.

A partir da origem:

select d1.mview_id,d1.owner,d1.master,d1.mview_last_refresh_time,d2.snapshot_site from dba_base_table_mviews d1,dba_registered_snapshots d2 where d1.mview_id=d2.snapshot_id;

Note que a query acima relaciona a dba_registered_snapshots, ou seja, caso o snapshot não esteja registrado, você não consegue essa informação.

Para identificar todos os snapshots não registrados da base:

A partir da origem:


select * from
            (
            select distinct d.log_owner, d.log_table, d.master snapname, snapid, 
                  nvl(r.snapshot_site, 'not registered') snapsite,
                  snaptime,
                      (select count(*) from 
                            sys.slog$ s1, dba_registered_snapshots r1, dba_snapshot_logs d1
                            where
                                    d1.log_owner = s1.mowner (+)
                                    and d1.master = s1.master (+)
                                    and s1.snapid=r1.snapshot_id(+)
                                    and (snaptime <= trunc(sysdate - 7) or snaptime is null)
                                    and d.log_owner = d1.log_owner
                                    and d.master = d1.master
                                    and s.snapid = s1.snapid
                      ) as total
            from  sys.slog$ s, dba_registered_snapshots r, dba_snapshot_logs d
            where
             d.log_owner = s.mowner (+)
              and d.master = s.master (+)
              and s.snapid=r.snapshot_id(+)
              and (snaptime <= trunc(sysdate - 7) or snaptime is null)
            ) where total < 1;