http://blog.csdn.net/outget1/article/details/5276266 物化视图有关的数据字典
DBA_HISTOGRAMS 是DBA_TAB_HISTOGRAMS的同义词.
DBA_IND_COLUMNS 包含在所有表和聚集中组成索引的列的描述.
DBA_IND_EXPRESSIONS 包含在所有表和聚集中函数型索引的表达式.
DBA_IND_PARTITIONS 为每一个索引分区,描述分区级的分区信息,分区的存储参数和ANALYZE决定的各种分区统计数据.
DBA_IND_SUBPARTITIONS 为当前用户拥有的每一个索引分区,描述分区级的分区信息,分区的存储参数和ANALYZE决定的各种分 区统计数据.
DBA_INDEXES 数据库中所有索引的描述.
DBA_INDEXTYPE_COMMENTS 数据库中所有的用户定义的索引类型.
DBA_INDEXTYPE_OPERATORS 列出索引类型支持的所有操作符.
DBA_INDEXTYPES 所有的索引类型.
DBA_INTERNAL_TRIGGERS 数据库中所有的内部触发器.
DBA_JOBS 数据库中的所有的作业.
DBA_JOBS_RUNING 数据库中的所有当前运行的作业.
DBA_JOIN_IND_COLUMNS 描述数据库中的所有的连接条件.
DBA_KGLLOCK 列出在KGL对象上所有的锁和PINS.
DBA_LIBRARIES 列出数据库中的所有的库.
DBA_LOB_PARTITIONS 包含在表中的用户可访问的JOB.
DBA_LOB_SUBPARTITIONS 显示LOB数据子分区中的分区级属性.
DBA_LOBS 包含在所有表中的LOB.
DBA_2PC_NEIGHBORS 包含未决事务的引入或流出的连接信息.
DBA_ALL_TABLES 显示数据库中所有表的描述.
DBA_APPLICATION_ROLES 所有的具有函数定义的验证策略的角色.
DBA_ASSOCIATIONS 显示用户定义的统计信息.
DBA_AUDIT_EXISTS 列出AUDIT NOT EXISTS和AUDIT EXISTS产生的审计跟踪.
DBA_AUDIT_OBJECT 系统中所有对象的审计跟踪记录.
DBA_AUDIT_SESSION 列出关于CONNECT和DISCONNECT的所有审计跟踪信息.
DBA_AUDIT_STATEMENT 列出关于GRANT,REVOKE,AUDIT,NOAUDIT,ALTER SYSTEM语句的审计跟踪信息.
DBA_AUDIT_TRAIL 列出所有的审计跟踪条目.
DBA_BLOCKERS 列出正有人等待一个会话持有的锁的所有会话,但并非它们自己在等待一个锁.
DBA_BASE_TABLE_MVIEWS 描述数据库中所有的物化视图.
DBA_CATALOG 列出所有数据库标,视图,同义词和序列.
DBA_CLU_COLUMNS 列出表列到聚集列的映射.
DBA_CLUSTER_HASH_EXPRESSIONS 列出所有聚集的散列HASH函数.
DBA_CLUSTERS 包含数据库中所有聚集的描述.
DBA_COL_COMMENTS 所有表和视图的列的注解.
DBA_COL_PRIVS 列出数据库中授予列的所有特权.
DBA_COLL_TYPES 显示数据库中所有命名的集合类型.
DBA_CONS_COLUMNS 包含在约束定义中的,可访问的列的信息.
DBA_CONSTRAINTS 所有表上约束的定义.
DBA_CONTEXT 所有上下文名字空间的信息.
DBA_DATA_FILES 数据库文件的信息.
DBA_DB_LINKS 数据库中的所有数据库链接.
DBA_DDL_LOCKS 数据库所持有的所有的DDL锁.
DBA_DEPENDENCIES 列出对象之间的依赖性.
DBA_DIM_ATTRIBUTES 代表维级和功能依赖的列之间的关系.
DBA_DIM_JOIN_KEY 代表两个维之间的连接.
DBA_DIM_LEVEL_KEY 代表一个维级的列.
DBA_DIM_LEVELS 代表一个维级.
DBA_DIMENSIONS 代表维对象.
DBA_DIRECTORIES 提供数据库所有对象的信息.
DBA_DML_LOCKS 列出数据库中所有的DML锁,和对一个DML锁的所存未决请求.
DBA_ERRORS 列出数据库中所有存储的对象的当前错误.
DBA_EXP_FILES 包含导出文件的信息.
DBA_EXP_OBJECTS 列出以增量方式导出的对象.
DBA_EXP_VERSION 包含最后导出会话的版本号.
DBA_EXTENTS 列出数据库中组成所有段的信息.
DBA_EXTERNAL_TABLES 描述数据库中的所有的外部表.
DBA_FREE_SPACE 列出所有表空间中的空闲分区.
DBA_FREE_SPACE_COALESCED 包含表空间中合并空间的统计数据.
DBA_LOCK_INTERNAL 包含每个被持有的锁或简易锁的一行信息,及每一个未决请求的一行信息.
DBA_LOCKS 列出数据库中持有的锁或简易锁,及每一个未决请求信息.
DBA_LOG_GROUP_COLUMNS 描述在日志组中指定的数据库中的所有列的信息.
DBA_METHOD_PARAMS 数据库中类型的方法参数的描述.
DBA_METHOD_RESULTS 数据库中所有类型的方法结果的描述.
DBA_MVIEW_AGGREGATES 在聚集实例化视图的SELECT列表中出现的分组函数.
DBA_MVIEW_ANALYSIS 代表潜在地支持查询重写.
DBA_MVIEW_LOG_FILTER_COLS 列出所有记录在物化视图日志中的所有列.
DBA_MVIEW_REFRESH_TIMES 描述在数据库中所有物化视图的刷新时间.
DBA_MVIEWS 描述在数据库中所有物化视图.
DBA_NESTED_TABLES 在所有表中嵌套表的描述.
DBA_OBJ_AUDIT_OPTS 列出一个用户所有对象的审计选项.
DBA_OBJECT_SIZE 列出各类对象用字节表示的大小.
DBA_OBJECT_TABLES 显示数据库中所有对象表的描述.
DBA_OBJECTS 列出数据库中所有的对象.
DBA_OPANCILLARY 列出操作连接符的附加信息.
DBA_OPARGUMENTS 列出操作连接符的参数信息.
DBA_ORPHAN_KEY_TABLE 报告那些在基表下有坏块的索引中的键值.
DBA_OUTLINE_HINTS 列出组成概要的提示符.
DBA_OUTLINES 列出有关概要的信息.
DBA_PART_COL_STATISTICS 所有分区表的列统计数据和直方图信息.
DBA_PART_HISTOGRAMS 所有表分区上直方图的直方图数据.
DBA_PART_INDEXES 所有分区索引的对象级分区信息.
DBA_PART_KEY_COLUMNS 所有分区对象的分区关键字列.
DBA_PART_LOBS 描述分区LOB的表级信息.
DBA_PART_TABLES 列出所有分区表的对象级分区信息.
DBA_PARTIAL_DROP_TABS 描述部分删除的表.
DBA_PENDING_TRANSACTIONS 提供关于未完成事务的信息.
DBA_POLICIES 列出数据库中的所有的安全策略.
DBA_PRIV_AUDIT_OPTS 通过系统和由用户审计的当前系统特权.
DBA_PROCEDURES 所有函数及过程和他们的相关属性.
DBA_PROFILES 显示所有启动文件及限制.
DBA_PROXIES 显示系统中所有代理连接的信息.
DBA_PUBLISHED_COLUMNS 描述所有存在源列的表.
DBA_QUEUE_SCHEDULES 描述当前传播信息的方案.
DBA_QUEUE_TABLES 描述在数据库中建立的所有队列表中的队列的名称和类型.
DBA_QUEUES 描述数据库中每一个队列的操作特性.
DBA_RCHILD 列出任何刷新组中的所有子组.
DBA_REFRESH 列出所有刷新组.
DBA_REFRESH_CHILDREN 列出刷新组中的所有对象.
DBA_REFS 数据库中所有表的对象类型列中的REF列和REF属性.
DBA_REGISTERED_MVIEW_GROUPS 列出了在该地点所有重组的物化视图.
DBA_REGISTERED_MVIEWS 数据库中所有注册了的物化视图.
DBA_REGISTERED_SNAPSHOT_GROUPS 列出该场地的所有快照登记组.
DBA_REGISTERED_SNAPSHOTS 检索本地表的远程快照的信息.
DBA_REPAIR_TABLE 通过DBA_REPAIR.CHECK_OBJECT过程发现的任何损坏.
DBA_RESUMABLE 列出了在系统中执行的可恢复的语句.
DBA_RGROUP 列出所有刷新组.
DBA_ROLE_PRIVS 列出授予用户角色的角色.
DBA_ROLES 数据库中存在的所有角色.
DBA_ROLLBACK_SEGS 包含回滚段的描述.
DBA_RSRC_CONSUMER_GROUP_PRIVS 列出所有已被授权的资源管理员消费组,用户和角色.
DBA_RSRC_CONSUMER_GROUPS 数据库中所有资源消费组.
DBA_RSRC_MANAGER_SYSTEM_PRIVS 列出所有已授予属于资源管理员系统特权的用户和角色.
DBA_RSRC_PLAN_DIRECTIVES 数据库中存在的所有资源计划的指示.
DBA_RSRC_PLANS 数据库中存在的所有资源计划.
DBA_SEGMENTS 分配给所有数据库段的存储信息.
DBA_SEQUENCES 数据库中所有序列的描述.
DBA_SNAPSHOT_LOG_FILTER_COLS 列出记录在快照日志上的所有过滤列.
DBA_SNAPSHOT_LOGS 数据库中所有的快照日志.
DBA_SNAPSHOT_REFRESH_TIMES 列出快照刷新次数.
DBA_SNAPSHOTS 数据库中所有的快照.
DBA_SOURCE 数据库中所有存储对象的来源.
DBA_SOURCE_TABLES 允许发行者查看所有现有的源表.
DBA_SQLJ_TYPE_ATTRS 数据库中所有关于SQLJ对象的所有属性.
DBA_SQLJ_TYPE_METHODS 数据库中所有类型的方法.
DBA_SQLJ_TYPES 数据库中所有关于SQLJ对象类型信息.
DBA_STMT_AUDIT_OPTS 描述通过系统并由用户审计的当前系统审计选项.
DBA_STORED_SETTINGS 列出具有执行特权的存储PL/SQL单元的永久参数设置信息.
DBA_SUBPART_COL_STATISTICS 列出表子分区的列统计数据和直方图信息.
DBA_SUBPART_HISTOGRAMS 列出表子分区中直方图的实际数据.
DBA_SUBPART_KEY_COLUMNS 允许发行者查看他们预定的所有发行的列.
DBA_SUBPART_TABLES 允许发行者查看他们预定的所有发行的表.
DBA_SUBSCRIPTIONS 允许发行者查看所有的预定.
DBA_SYNONYMS 数据库中所有同义词.
DBA_SYS_PRIVS 授予用户和角色的系统特权.
DBA_TAB_COL_STATISTICS 包含在DBA_TAB_COLUMNS视图中的列统计数据和直方图信息.
DBA_TAB_COLUMNS 所有表,视图和聚集的描述列的信息.
DBA_TAB_COMMENTS 数据库中所有列和表的注解.
DBA_TAB_HISTOGRAMS 所有表中列的直方图.
DBA_TAB_MODIFICATIONS 显示数据库中所有的上次统计后被修改了的表.
DBA_TAB_PARTITIONS 对表的分区,描述它的分区级分区信息,分区的存储参数和由ANALYZE决定的各种分区统计数据.
DBA_TAB_PRIVS 列出授予用户的角色的系统特权.
DBA_TAB_SUBPARTONS 对表的子分区,描述它的分区级分区信息,分区的存储参数和由ANALYZE决定的各种分区统计数据.
DBA_TABLES 数据库中所有关系表的描述.
DBA_TABLESPACES 所有表空间的描述.
DBA_TEMP_FILES 数据库临时文件信息.
DBA_TRANSFORMATIONS 数据库中所有消息传递信息.
DBA_TRIGGER_COLS 所有触发器列的用法.
DBA_TRIGGERS 数据库中所有的触发器.
DBA_TS_QUOTAS 所有用户的表空间的限额.
DBA_TYPE_ATTRS 数据库类型的属性.
DBA_TYPE_METHODS 描述数据库中所有类型的方法.
DBA_TYPES 数据库中所有的抽象数据类型.
DBA_UNDO_EXTENTS 在撤消表空间的每个范围的提交时间.
DBA_UNUSED_COL_TABS 对所有未使用列的描述.
DBA_UPDATABLE_COLUMNS 对可在一个连接视图中,由数据库管理员更新的列的描述.
DBA_USERS 数据库所有用户信息.
DBA_USTATS 当前用户信息.
DBA_VARRAYS 用户可以访问的视图的文本.
DBA_VIEWS 数据库中所有视图的文本.
DBA_WAITERS 列出所有正在等待一个锁的会话,以及列出正在阻止它们获得该锁的会话
ORACLE物化视图- 循序渐进MView(六) MView管理
MView重要视图
Oracle文档中MView相关视图的链接Materialized View and Refresh Group Views。
在源数据库端的相关视图
DBA_BASE_TABLE_MVIEWS
此视图与系统视图SYS.SLOG$相对应。
视图DBA_BASE_TABLE_MVIEWS记录了使用MView Log访问基表的相关刷新的信息。换句话说就是记录了使用了MView Log并且做过快速刷新的MView的信息,必须同时满足有MView Log以及做过快速刷新这两个条件,缺一不可。
列名 | 描述 |
---|---|
OWNER | 基表的OWNER |
MASTER | 基表的名称 |
MVIEW_LAST_REFRESH_TIME | 基于这个基表的MView最后的快速刷新的时间 |
MVIEW_ID | 基于这个基表的MView在数据库中的ID,这个可以和DBA_REGISTERED_MVIEWS关联找出相应的MView的名称 |
-
备注:SYS.SLOG$的作用
- SYS.SLOG$记录了注册在源数据库端的能进行快速刷新的MView的信息。这个信息在进行快速刷新的时候会备用到,同时也会用来维护基表的MView Log信息。
DBA_REGISTERED_MVIEWS
此视图与系统视图SYS.REG_SNAP$相对应。
视图DBA_REGISTERED_MVIEWS记录了所有在主站点上面注册的MView的相关的信息,这里保存的东西只是起提供信息性的作用。当MView在创建的时候Oracle会自动的将MView的信息写入到此视图中,但是也不排除会有失败的情况,要是失败了的话需要手动的使用DBMS_MVIEW包中的REGISTER_MVIEW进行注册。
详细的列描述就不列了,具体的参看文档。
-
备注:SYS.REG_SNAP$的作用
- SYS.REG_SNAP$记录了注册在源数据库端的MView的信息,这个表只是为了提供信息而用。
DBA_MVIEW_LOGS
此视图与系统视图SYS.mlog$相对应。
此视图记录了源数据库中的所有的MView Log的相关信息。
详细的列描述就不列了,具体的参看文档。
在MView数据库端的相关视图
DBA_MVIEWS
此视图与系统视图SYS.SNAP$相对应。
此视图我们在之前已经接触了很多了,视图里面保存了数据库中所有的MView的信息。我们进行的大部分物化视图的查询工作都要基于这个视图来进行。
详细的列描述见文档。
DBA_MVIEW_REFRESH_TIMES
此视图与系统视图SYS.SNAP_REFTIME$相对应。
此视图记录了MView最后刷新的时间,这在我们检查MView是否正常的刷新过时很有用的。
详细的列描述见文档。
DBA_REFRESH和DBA_REFRESH_CHILDREN
这两个视图我们在之前也已经接触过了,主要是记录了刷新组相关的信息。
MView相关包
在进行MView的维护的时候使用的最多的就是DBMS_MVIEW和DBMS_REFRESH这两个包了,前一个用来进行MView的维护,另外一个进行MView刷新组的维护。
相关的Oracle文档
一些MView维护的相关问题
SNAPSHOT vs. Materialized View
SNAPSHOT == Materialized View (老版本的Oracle中管MView叫SNAPSHOT )
- DBMS_SNAPSHOT == DBMS_MVIEW
- CREATE SNAPSHOT == CREATE MATERIALIZED VIEW
清理无效的MView Log
1. 查询MV表信息
- ALL_BASE_TABLE_MVIEWS: All materialized views with log(s) in the database that the user can see
2. 查询已注册的快照信息
col name for a30
col snapshot_site for a15
col refresh_method for a15
select owner , name , snapshot_site , refresh_method from dba_registered_snapshots ;
3. 对比上面两个结果找出很久没有刷新的MV ID,然后进行UNREGISTER_MVIEW操作
- mviewowner: MView的OWNER。
- mviewname: MView的名字。
- mviewsite: 这个可以从DBA_REGISTERED_MVIEWS中的MVIEW_SITE中看到。
4. 清理MVLOG记录
查询MView Log的大小
declare v_output number ;
begin
dbms_output . put_line ( ' Owner MV Table Name MV Log Size ' ) ;
dbms_output . put_line ( ' -------------------- ---------------------------------------- -------------- ' ) ;
for c_cursor in ( select owner , object_name from all_objects where object_name like ' MLOG$_% ' ) LOOP
execute immediate ' select count(*) from ' || c_cursor . owner || ' . ' || c_cursor . object_name into v_output ;
dbms_output . put_line (
rpad ( substr ( c_cursor . owner , 0 , 20 ) , 20 , ' ' ) || ' '
|| rpad ( substr ( c_cursor . object_name , 7 , 40 ) , 40 , ' ' )
|| ' ' || v_output ) ;
end loop ;
end ;
/
set serveroutput off
检查MV的刷新兼容性
SQL > @?/ rdbms / admin / utlxmv . sql
-- explain mv
TRUNCATE TABLE MV_CAPABILITIES_TABLE ;
EXECUTE DBMS_MVIEW . EXPLAIN_MVIEW ( ' mv_t3 ' ) ;
-- Or like this
TRUNCATE TABLE MV_CAPABILITIES_TABLE ;
BEGIN
DBMS_MVIEW . EXPLAIN_MVIEW ( ' SELECT * FROM oe.orders@orc1.world o
WHERE EXISTS (SELECT * FROM oe.customers@orc1.world c
WHERE o.customer_id = c.customer_id AND c.credit_limit > 500) ' ) ;
END ;
/
-- 查看结果
COL MVOWNER FOR A10
COL MVNAME FOR A20
COL MSGTXT FOR A65
SELECT MVOWNER , MVNAME , CAPABILITY_NAME , POSSIBLE , MSGTXT FROM MV_CAPABILITIES_TABLE ;
查询MView刷新延时
column interval format 999999
column " rgroup owner " format a20
column " refresh group " format a20
column " minutes behind " format 9999.99
column " master link " format a20
column " mview owner " format a15
column next_date format a20
SELECT
-- int.rowner "rgroup owner",
-- int.rname "refresh group",
mv . owner as " mview owner " ,
mv . mview_name as " mview name " ,
mv . master_link as " master link " ,
round ( 1440 * ( sysdate - mv . last_refresh_date )) as " minutes behind " ,
to_char ( int . next_date , ' yyyy-mm-dd hh24:mi:ss ' ) " next date " ,
round ( int . interval * 1440 ) " interval "
FROM dba_mviews mv ,
(
SELECT child . owner , child . name , child . rowner , child . rname , job . next_date , job . next_date - job . last_date as interval
FROM dba_refresh ref , dba_refresh_children child , dba_jobs job
WHERE ref . rname = child . rname AND (( upper ( job . what ) LIKE ' % ' || ref . rname || ' % ' )
OR ( upper ( job . what ) LIKE ' % ' || ref . rname || ' % ' ))
) int
WHERE mv . owner = int . owner ( + ) AND mv . mview_name = int . name ( + )
ORDER BY ( sysdate - mv . last_refresh_date ) * 1440 DESC , mv . owner , mv . mview_name ;
参考文档
- Note:236233.1 Materialized View Refresh : Log Population and Purge
- Note 258634.1 Materialized View registration at Master Site
- Note 236292.1 Scripts to Report Information about Materialized View Logs at the Master Site.
- 8 Managing a Materialized View Replication Environment
来自Advanced Replication Management API Reference,很有用的MView管理实例