外贸seo网站大全,wordpress视频列表,黑糖wordpress,专业装修的商铺Oracle-物化视图 介绍#xff1a;oracle物化视图是包括一个查询结果的数据库对象#xff0c;它是远程数据的的本地副本#xff0c;或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据#xff0c;也可以称为快照。对于复制#xff0c;物化视图允许你在本地… Oracle-物化视图 介绍oracle物化视图是包括一个查询结果的数据库对象它是远程数据的的本地副本或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据也可以称为快照。对于复制物化视图允许你在本地维护远程数据的副本,这些副本是只读的。如果你想修改本地副本必须用高级复制的功能。当你想从一个表或视图中抽取数据时你可以用从物化视图中抽取。对于数据仓库创建的物化视图通常情况下是聚合视图单一表聚合视图和连接视图。物化视图可以查询表视图和其它的物化视图。 1 关于物化视图日志 查询物化视图日志文件格式desc mlog$_test; 创建物化视图时默认指定物化视图中存在主键如果不指定那么创建的物化视图日志文件的基表必须存在主键否则会报错 Demo:对一个表test 创建日志create materialized view log on test; 那么会报表TEST不包含主键约束条件 这种情况下就必须指定日志文件结构 比如create materialized view log on test with rowid 2关于生成数据和刷新 2.1 生成数据 两大选项build immediate build deferred Build immediate:在创建物化视图的同时根据主表生成数据 Bulid deferred:在创建物化视图的同时在物化视图内不生成数据如果此时没有生成数据以后可以利用oracle自带的过程进行相应的调用采取EXEC DBMS_MVIEW.Refresh(‘MV_name’,’C’)注意必须使用全量刷新默认不带参数是增量刷新所以这里参数必须是C因为之前都没有生成数据所以必须全量。 2.2 关于刷新 2.2.1刷新方式complete fast force Complete :完全刷新整个物化视图相当于重新生成物化视图此时即时增量刷新可用也全量刷新 l Fast:当有数据更新时依照相应的规则对物化视图进行更新此时必须创建物化视图日志物化视图日志记录了数据更新的日志关于日志的说明参照“物化视图日志文件介绍” l Force:当增量刷新可用则增量刷新当增量刷新不可用则全量刷新此项为默认选项不过从实际情况出发应该尽量不使用默认选项可以考虑使用增量刷新对大表特别有效大表全量更新速度是非常慢的特别是在存在索引的情况下在创建物化视图语句中可能某些限制查询的条件导致了增量刷新无法使用这个是需要注意的具体是哪类语句导致fast刷新不可用有待总结….. 2.2.2刷新时间on demand on commit start with/ next On demand:在需要刷新时进行刷新人工判断 On commit:在基表上有提交操作时进行更新 Start with:指定首次刷新的时间一般指定的是当前时间不过也可以在创建物化视图时不生成数据则可以考虑在指定的时间刷新从而生成数据 Next:刷新的周期时间 3 基于主键的物化视图和ROWID的物化视图的说明 创建物化视图日志时指定了记录更新的原则即with 后面的primary 或者rowid 或者object id等等后面默认是以primary key为记录更新在物化视图内也是以此为更新的原则。 4 关于物化视图存放的的表空间 直接在创建物化视图时指定日志存放的表空间和物化视图的表空间。 例子create materialized view MV_TEST tablespace test ----表空间名称 5 关于查询重写和更新 在创建查询重写时基表中必须有主键约束视图里是无法创建主键的不过其继承了基表的主键约束。关于视图的创建的一些技巧有待总结……下面给个例子 Create materialized view MVTEST Refresh fast ----前提是必须创建基表日志,可以忽略该项 Enable query rewrite ----前提是基表上必须存在主键约束 As Select * from TEST; ----物化视图数据生成 6 关于创建物化视图的例子 6.1 使用增量刷新的物化视图的写法 创建物化视图日志必须创建日志 Create materialized view log on TEST ----TEST为表名 ----注(TEST为表名或者视图名关于视图上建立物化视图见基于视图的物化视图 ----创建物化视图语句 Create materialized view MVTEST ----MVTEST为物化视图名 Build immediate ----创建时生成数据对应的是build deferred Refresh fast ----增量刷新 On commit ----在基表有更新时提交这里该句对视图无效 With rowid ----这里创建基于rowid的物化视图对应的是 primary key As Select * from TEST; ----生成物化视图数据语句 SQL create materialized view mvtest build immediate refresh fast on commit as select * from test; Oracle-物化视图 介绍oracle物化视图是包括一个查询结果的数据库对象它是远程数据的的本地副本或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据也可以称为快照。对于复制物化视图允许你在本地维护远程数据的副本,这些副本是只读的。如果你想修改本地副本必须用高级复制的功能。当你想从一个表或视图中抽取数据时你可以用从物化视图中抽取。对于数据仓库创建的物化视图通常情况下是聚合视图单一表聚合视图和连接视图。物化视图可以查询表视图和其它的物化视图。 1 关于物化视图日志 查询物化视图日志文件格式desc mlog$_test; 创建物化视图时默认指定物化视图中存在主键如果不指定那么创建的物化视图日志文件的基表必须存在主键否则会报错 Demo:对一个表test 创建日志create materialized view log on test; 那么会报表TEST不包含主键约束条件 这种情况下就必须指定日志文件结构 比如create materialized view log on test with rowid 2关于生成数据和刷新 2.1 生成数据 两大选项build immediate build deferred Build immediate:在创建物化视图的同时根据主表生成数据 Bulid deferred:在创建物化视图的同时在物化视图内不生成数据如果此时没有生成数据以后可以利用oracle自带的过程进行相应的调用采取EXEC DBMS_MVIEW.Refresh(‘MV_name’,’C’)注意必须使用全量刷新默认不带参数是增量刷新所以这里参数必须是C因为之前都没有生成数据所以必须全量。 2.2 关于刷新 2.2.1刷新方式complete fast force Complete :完全刷新整个物化视图相当于重新生成物化视图此时即时增量刷新可用也全量刷新 l Fast:当有数据更新时依照相应的规则对物化视图进行更新此时必须创建物化视图日志物化视图日志记录了数据更新的日志关于日志的说明参照“物化视图日志文件介绍” l Force:当增量刷新可用则增量刷新当增量刷新不可用则全量刷新此项为默认选项不过从实际情况出发应该尽量不使用默认选项可以考虑使用增量刷新对大表特别有效大表全量更新速度是非常慢的特别是在存在索引的情况下在创建物化视图语句中可能某些限制查询的条件导致了增量刷新无法使用这个是需要注意的具体是哪类语句导致fast刷新不可用有待总结….. 2.2.2刷新时间on demand on commit start with/ next On demand:在需要刷新时进行刷新人工判断 On commit:在基表上有提交操作时进行更新 Start with:指定首次刷新的时间一般指定的是当前时间不过也可以在创建物化视图时不生成数据则可以考虑在指定的时间刷新从而生成数据 Next:刷新的周期时间 3 基于主键的物化视图和ROWID的物化视图的说明 创建物化视图日志时指定了记录更新的原则即with 后面的primary 或者rowid 或者object id等等后面默认是以primary key为记录更新在物化视图内也是以此为更新的原则。 4 关于物化视图存放的的表空间 直接在创建物化视图时指定日志存放的表空间和物化视图的表空间。 例子create materialized view MV_TEST tablespace test ----表空间名称 5 关于查询重写和更新 在创建查询重写时基表中必须有主键约束视图里是无法创建主键的不过其继承了基表的主键约束。关于视图的创建的一些技巧有待总结……下面给个例子 Create materialized view MVTEST Refresh fast ----前提是必须创建基表日志,可以忽略该项 Enable query rewrite ----前提是基表上必须存在主键约束 As Select * from TEST; ----物化视图数据生成 6 关于创建物化视图的例子 6.1 使用增量刷新的物化视图的写法 创建物化视图日志必须创建日志 Create materialized view log on TEST ----TEST为表名 ----注(TEST为表名或者视图名关于视图上建立物化视图见基于视图的物化视图 ----创建物化视图语句 Create materialized view MVTEST ----MVTEST为物化视图名 Build immediate ----创建时生成数据对应的是build deferred Refresh fast ----增量刷新 On commit ----在基表有更新时提交这里该句对视图无效 With rowid ----这里创建基于rowid的物化视图对应的是 primary key As Select * from TEST; ----生成物化视图数据语句 SQL create materialized view mvtest build immediate refresh fast on commit as select * from test; 转载于:https://blog.51cto.com/zhangdivy/953905