MINI MINI MANI MO

Path : /opt/oracle/product/18c/dbhomeXE/rdbms/admin/
File Upload :
Current File : //opt/oracle/product/18c/dbhomeXE/rdbms/admin/catxmvrs.sql

Rem
Rem $Header: rdbms/admin/catxmvrs.sql /main/3 2016/01/08 07:31:47 sramakri Exp $
Rem
Rem catxmvrs.sql
Rem
Rem Copyright (c) 2015, 2016, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      catxmvrs.sql -  MV refresh stats catalog views
Rem
Rem    DESCRIPTION
Rem      <short description of component this file declares/defines>
Rem
Rem    NOTES
Rem      <other useful comments, qualifications, etc.>
Rem
Rem    BEGIN SQL_FILE_METADATA 
Rem    SQL_SOURCE_FILE: rdbms/admin/catxmvrs.sql 
Rem    SQL_SHIPPED_FILE: 
Rem    SQL_PHASE: 
Rem    SQL_STARTUP_MODE: NORMAL 
Rem    SQL_IGNORABLE_ERRORS: NONE 
Rem    SQL_CALLING_FILE: 
Rem    END SQL_FILE_METADATA
Rem
Rem    MODIFIED   (MM/DD/YY)
Rem    sramakri    12/22/15 - bug-22447265: change session_user to current_user
Rem    tfyu        12/14/15 - bug-22343972
Rem    sramakri    02/18/15 - mv refresh stats catalog views
Rem    sramakri    02/18/15 - Created
Rem


@@?/rdbms/admin/sqlsessstart.sql

-- add the xmltype column for the refresh stats catalog table
alter table sys.mvref$_stmt_stats add execution_plan xmltype;


--------------------------------------
---
---  CATALOG VIEWS
---
--------------------------------------
-- cat0.sql
-- DBA_MVREF_STATS_SYSTEM_DEFAULTS (in func spec)
-- DBA_MVREF_STATS_SYS_DEFAULTS 
create or replace view dba_mvref_stats_sys_defaults
(
 parameter_name,
 value
)
as
select parameter_name, value from 
 (select 'COLLECTION_LEVEL' parameter_name, 
         decode(collection_level, 0, 'NONE', 1, 'TYPICAL', 2, 'ADVANCED', NULL) value
  from sys.mvref$_stats_sys_defaults
  union all
  select 'RETENTION_PERIOD' parameter_name, to_char(retention_period) value 
  from sys.mvref$_stats_sys_defaults)
/

-- USER_MVREF_STATS_SYS_DEFAULTS (note: same definition as DBA_MVREF_STATS_SYS_DEFAULTS)
create or replace view user_mvref_stats_sys_defaults
(
 parameter_name,
 value
)
as
select parameter_name, value
from dba_mvref_stats_sys_defaults;

grant select on SYS.dba_mvref_stats_sys_defaults to select_catalog_role;
create or replace public synonym dba_mvref_stats_sys_defaults for SYS.dba_mvref_stats_sys_defaults;
grant read on SYS.user_mvref_stats_sys_defaults to public;
create or replace public synonym user_mvref_stats_sys_defaults for SYS.user_mvref_stats_sys_defaults;

execute CDBView.create_cdbview(false,'SYS','DBA_MVREF_STATS_SYS_DEFAULTS','CDB_MVREF_STATS_SYS_DEFAULTS');
grant select on SYS.CDB_MVREF_STATS_SYS_DEFAULTS to select_catalog_role
/
create or replace public synonym CDB_MVREF_STATS_SYS_DEFAULTS for SYS.CDB_MVREF_STATS_SYS_DEFAULTS
/

--------------------------------------
-- DBA_MVREF_STATS_PARAMS
create or replace view dba_mvref_stats_params
(
 mv_owner,
 mv_name,
 collection_level,
 retention_period
)
as
select
 mv_owner,
 mv_name,
 decode(collection_level, 0, 'NONE', 1, 'TYPICAL', 2, 'ADVANCED', NULL),
 retention_period
from
  (
   with defvals as
   (select collection_level, retention_period 
    from sys.mvref$_stats_sys_defaults)
    select mv_owner, mv_name, 
           nvl(e.collection_level, d.collection_level) collection_level,
           nvl(e.retention_period, d.retention_period) retention_period
    from
    (select mv_owner, mv_name, collection_level, retention_period
     from sys.mvref$_stats_params p right outer join 
     (select sowner mv_owner, vname as mv_name 
      from sys.snap$) s1
      using (mv_owner, mv_name)) e, defvals d
   )
/

-- USER_MVREF_STATS_PARAMS
create or replace view user_mvref_stats_params
(
 mv_owner,
 mv_name,
 collection_level,
 retention_period
)
as
select
 mv_owner,
 mv_name,
 collection_level,
 retention_period
from dba_mvref_stats_params
where mv_owner = SYS_CONTEXT ('USERENV', 'CURRENT_USER');
/

grant select on SYS.dba_mvref_stats_params to select_catalog_role;
create or replace public synonym dba_mvref_stats_params for SYS.dba_mvref_stats_params;
grant read on SYS.user_mvref_stats_params to public;
create or replace public synonym user_mvref_stats_params for SYS.user_mvref_stats_params;

execute CDBView.create_cdbview(false,'SYS','DBA_MVREF_STATS_PARAMS','CDB_MVREF_STATS_PARAMS');
grant select on SYS.CDB_MVREF_STATS_PARAMS to select_catalog_role
/
create or replace public synonym CDB_MVREF_STATS_PARAMS for SYS.CDB_MVREF_STATS_PARAMS
/

--------------------------------------
-- cat1.sql
-- DBA_MVREF_RUN_STATS 
create or replace view dba_mvref_run_stats
(
 run_owner,
 refresh_id,
 num_mvs,
 mviews,
 base_tables,
 method,
 rollback_seg,
 push_deferred_rpc,
 refresh_after_errors,
 purge_option,
 parallelism,
 heap_size,
 atomic_refresh,
 nested,
 out_of_place,
 number_of_failures,
 start_time,
 end_time,
 elapsed_time,
 log_setup_time,
 log_purge_time,
 complete_stats_available
) as
select
  u1.name as run_owner,
  refresh_id,
  num_mvs_total as num_mvs,
  mviews,
  base_tables,
  method,
  rollback_seg,
  push_deferred_rpc,
  refresh_after_errors,
  purge_option,
  parallelism,
  heap_size,
  atomic_refresh,
  nested,
  out_of_place,
  number_of_failures,
  decode(atomic_refresh, 'Y', start_time, NULL) start_time,
  decode(atomic_refresh, 'Y', end_time, NULL) end_time,
  decode(atomic_refresh, 'Y', elapsed_time, NULL) elapsed_time,
  decode(atomic_refresh, 'Y', log_setup_time, NULL) log_setup_time,
  decode(atomic_refresh, 'Y', log_purge_time, NULL) log_purge_time,
 complete_stats_available
from sys.mvref$_run_stats, sys.user$ u1
where run_owner_user# = u1.user#;
-- USER_MVREF_RUN_STATS 
create or replace view user_mvref_run_stats
as 
select
  refresh_id,
  num_mvs,
  mviews,
  base_tables,
  method,
  rollback_seg,
  push_deferred_rpc,
  refresh_after_errors,
  purge_option,
  parallelism,
  heap_size,
  atomic_refresh,
  nested,
  out_of_place,
  number_of_failures,
  start_time,
  end_time,
  elapsed_time,
  log_setup_time,
  log_purge_time,
  complete_stats_available
from dba_mvref_run_stats
where run_owner = SYS_CONTEXT ('USERENV', 'CURRENT_USER');

grant select on SYS.dba_mvref_run_stats to select_catalog_role;
create or replace public synonym dba_mvref_run_stats for SYS.dba_mvref_run_stats;
grant read on SYS.user_mvref_run_stats to public;
create or replace public synonym user_mvref_run_stats for SYS.user_mvref_run_stats;

execute CDBView.create_cdbview(false,'SYS','DBA_MVREF_RUN_STATS','CDB_MVREF_RUN_STATS');
grant select on SYS.CDB_MVREF_RUN_STATS to select_catalog_role
/
create or replace public synonym CDB_MVREF_RUN_STATS for SYS.CDB_MVREF_RUN_STATS
/

--------------------------------------
-- cat2.sql
-- DBA_MVREF_CHANGE_STATS 
create or replace view dba_mvref_change_stats
(
 tbl_owner,
 tbl_name,
 mv_owner,
 mv_name,
 refresh_id,
 num_rows_ins,
 num_rows_upd,
 num_rows_del,
 num_rows_dl_ins,
 pmops_occurred,
 pmop_details,
 num_rows
) as
select
  u1.name as tbl_owner,
  o1.name as tbl_name,
  u2.name as mv_owner,
  o2.name as mv_name,
  refresh_id,
  num_rows_ins,
  num_rows_upd,
  num_rows_del,
  num_rows_dl_ins,
  pmops_occurred,
  pmop_details,
  num_rows
from sys.mvref$_change_stats m1, 
     sys.obj$ o1, sys.obj$ o2, sys.user$ u1, sys.user$ u2
where o1.obj# = m1.tbl_obj# and o1.owner# = u1.user# and
      o2.obj# = m1.mv_obj# and o2.owner# = u2.user#;
-- USER_MVREF_CHANGE_STATS 
-- Note: same columns as dba_mvref_change_stats
-- The mv_owner column is retained.
create or replace view user_mvref_change_stats
(
 tbl_owner,
 tbl_name,
 mv_owner,
 mv_name,
 refresh_id,
 num_rows_ins,
 num_rows_upd,
 num_rows_del,
 num_rows_dl_ins,
 pmops_occurred,
 pmop_details,
 num_rows
) as
select
  tbl_owner,
  tbl_name,
  mv_owner,
  mv_name,
  refresh_id,
  num_rows_ins,
  num_rows_upd,
  num_rows_del,
  num_rows_dl_ins,
  pmops_occurred,
  pmop_details,
  num_rows
from dba_mvref_change_stats
where mv_owner = SYS_CONTEXT ('USERENV', 'CURRENT_USER');

grant select on SYS.dba_mvref_change_stats to select_catalog_role;
create or replace public synonym dba_mvref_change_stats for SYS.dba_mvref_change_stats;
grant read on SYS.user_mvref_change_stats to public;
create or replace public synonym user_mvref_change_stats for SYS.user_mvref_change_stats;

execute CDBView.create_cdbview(false,'SYS','DBA_MVREF_CHANGE_STATS','CDB_MVREF_CHANGE_STATS');
grant select on SYS.CDB_MVREF_CHANGE_STATS to select_catalog_role
/
create or replace public synonym CDB_MVREF_CHANGE_STATS for SYS.CDB_MVREF_CHANGE_STATS
/

--------------------------------------
-- DBA_MVREF_STMT_STATS 
create or replace view dba_mvref_stmt_stats
(
 mv_owner,
 mv_name,
 refresh_id,
 step,
 sqlid,
 stmt,
 execution_time,
 execution_plan
) as
select
  u1.name as mv_owner,
  o1.name as mv_name,
  refresh_id,
  step,
  sqlid,
  stmt,
  execution_time,
  execution_plan
from sys.mvref$_stmt_stats m1, 
     sys.obj$ o1, sys.user$ u1
where o1.obj# = m1.mv_obj# and o1.owner# = u1.user#;

-- USER_MVREF_STMT_STATS 
-- Note: same columns as dba_mvref_stmt_stats
-- The mv_owner column is retained.
create or replace view user_mvref_stmt_stats
(
 mv_owner,
 mv_name,
 refresh_id,
 step,
 sqlid,
 stmt,
 execution_time,
 execution_plan
) as
select
  mv_owner,
  mv_name,
  refresh_id,
  step,
  sqlid,
  stmt,
  execution_time,
  execution_plan
from dba_mvref_stmt_stats
where mv_owner = SYS_CONTEXT ('USERENV', 'CURRENT_USER');

grant select on SYS.dba_mvref_stmt_stats to select_catalog_role;
create or replace public synonym dba_mvref_stmt_stats for SYS.dba_mvref_stmt_stats;
grant read on SYS.user_mvref_stmt_stats to public;
create or replace public synonym user_mvref_stmt_stats for SYS.user_mvref_stmt_stats;

execute CDBView.create_cdbview(false,'SYS','DBA_MVREF_STMT_STATS','CDB_MVREF_STMT_STATS');
grant select on SYS.CDB_MVREF_STMT_STATS to select_catalog_role
/
create or replace public synonym CDB_MVREF_STMT_STATS for SYS.CDB_MVREF_STMT_STATS
/

-- cat3a.sql
-- DBA_MVREF_STATS 
create or replace view dba_mvref_stats
(
 mv_owner,
 mv_name,
 refresh_id,
 refresh_method,
 refresh_optimizations,
 additional_executions,
 start_time,
 end_time,
 elapsed_time,
 log_setup_time,
 log_purge_time,
 initial_num_rows,
 final_num_rows
) as
select
  u1.name as mv_owner,
  o1.name as mv_name,
  refresh_id,
  refresh_method,
  refresh_optimizations,
  additional_executions,
  start_time,
  end_time,
  elapsed_time,
  log_setup_time,
  log_purge_time,
  initial_num_rows,
  final_num_rows
from sys.mvref$_stats m1, 
     sys.obj$ o1, sys.user$ u1
where o1.obj# = m1.mv_obj# and o1.owner# = u1.user#;

-- USER_MVREF_STATS 
create or replace view user_mvref_stats
as 
select
  mv_name,
  refresh_id,
  refresh_method,
  refresh_optimizations,
  additional_executions,
  start_time,
  end_time,
  elapsed_time,
  log_setup_time,
  log_purge_time,
  initial_num_rows,
  final_num_rows
from dba_mvref_stats
where mv_owner = SYS_CONTEXT ('USERENV', 'CURRENT_USER');

grant select on SYS.dba_mvref_stats to select_catalog_role;
create or replace public synonym dba_mvref_stats for SYS.dba_mvref_stats;
grant read on SYS.user_mvref_stats to public;
create or replace public synonym user_mvref_stats for SYS.user_mvref_stats;

execute CDBView.create_cdbview(false,'SYS','DBA_MVREF_STATS','CDB_MVREF_STATS');
grant select on SYS.CDB_MVREF_STATS to select_catalog_role
/
create or replace public synonym CDB_MVREF_STATS for SYS.CDB_MVREF_STATS
/
--------------------------------------


@?/rdbms/admin/sqlsessend.sql

OHA YOOOO