Blog

  • Script to Refresh Materialized Views

    The following script can be used to refresh materialized views that are capable of FAST (incremental) refresh automatically. Can be used on EBS database as well if you un-comment the commented (REM) lines. The refresh criteria used is any fast refresh-able materialized view that has not been refreshed in the past 24 hours, but was refreshed in the last one month…

    REM Uncomment below line if EBS database
    REM alter session set current_schema=apps;
    
    set serveroutput on size 9999
    
    Declare
    cursor mv2ref is select owner ||'.'||  mview_name mview
           from dba_mviews
           where last_refresh_date between sysdate -30 and sysdate -1
           and fast_refreshable = 'DML';
    dummy pls_integer;
    
    begin
    
    REM Uncomment below line if EBS database
    REM select MRP_AP_REFRESH_S.NEXTVAL into dummy from dual;
    
    for rmv2ref in mv2ref loop
    begin
        dbms_mview.refresh(rmv2ref.mview, 'F');
        dbms_output.put_line(rmv2ref.mview ||' Refreshed at '|| to_char(systimestamp));
    
    exception
    when others then
        dbms_output.put_line(rmv2ref.mview ||' Errored at '|| to_char(systimestamp));
        dbms_output.put_line('    Error: '|| sqlcode ||':'||sqlerrm);
    
    end;
    
    end loop;
    
    end;
    /

    Enjoy!

  • Query – Tablespace Max Size

    I sometimes see concerned emails from developers that they are running out of space in tablespace and the DBA need to do something immediately. The DBA will start wondering we have monitoring in place, then how come it did not catch an out of space situation, but a user/developer did…

    For you developer/user, if you are wondering if your database/tablespace is running out of space, you may need to check if the tablespace has autoextensible data files…

    Here is a simple query, that could be used to find the current size of the tablespace and how much it can grow using the autoextensible feature of data file.

      SELECT tablespace_name,
             ROUND (SUM (bytes) / 1048576) curr_size,
             ROUND (SUM (GREATEST (bytes, DECODE (autoextensible, ‘YES’, maxbytes, 0)))/ 1048576)  growable
        FROM dba_data_files
    GROUP BY tablespace_name
    ORDER BY tablespace_name;