- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分区更改跟不踪需要
分区更改跟踪:不需要 MV 日志
要了解此增强功能,首先必须了解物化视图 (MV) 刷新过程中的分区修整概念。
假设基于列 ACC_MGR_ID 对表 ACCOUNTS 进行了分区,每个 ACC_MGR_ID 值一个分区。您根据 ACCOUNTS 创建了一个名为 ACC_VIEW 的 MV,该 MV 也根据列 ACC_MGR_ID 进行了分区,每个 ACC_MGR_ID 一个分区,如下图所示:
假设已经更新了表 ACCOUNTS 中的记录,但只在分区 P1 中进行了此更新。要快速刷新此 MV,您只需刷新分区 P1 而非整个表,这里正是与 ACC_MGR_ID 相关的数据所在的分区。Oracle 自动执行此任务,通过一个名为分区更改跟踪 (PCT) 的特性跟踪对分区的更改。但有一个问题需稍加注意:要在快速刷新的过程中启用 PCT,必须创建 MV 日志,当表中的行发生变化会填充这些日志。发出刷新命令后,刷新进程将读取 MV 日志以识别这些更改。
不用说,该要求增加了操作的总执行时间。此外,附加的插入操作将消耗 CPU 周期和 I/O 带宽。
幸好,在 Oracle 数据库 10g 第 2 版中,PCT 不需要 MV 日志即可工作。让我们看一看它的作用方式。首先,确认表 ACCOUNTS 中没有 MV 日志。
SQL select * 2? from dba_mview_logs 3? where master = ACCOUNTS;
no rows selected 现在,更新该表中的某个记录。
update accounts set last_name = ... where acc_mgr_id = 3; 该记录位于分区 P3 中。
现在,您就可以刷新此 MV 了。但首先记录表 ACCOUNTS 所有段的段级统计信息。稍后,您将使用这些统计信息了解使用了哪些段。
select SUBOBJECT_NAME, value from v$segment_statistics where owner = ARUP and OBJECT_NAME = ACCOUNTS and STATISTIC_NAME = logical reads order by SUBOBJECT_NAME /
SUBOBJECT_NAME????????????????????? VALUE ------------------------------ ---------- P1?????????????????????????????????? 8320 P10????????????????????????????????? 8624 P2????????????????????????????????? 12112 P3????????????????????????????????? 11856 P4?????????????????????????????????? 8800 P5?????????????????????????????????? 7904 P6?????????????????????????????????? 8256 P7?????????????????????????????????? 8016 P8?????????????????????????????????? 8272 P9?????????????????????????????????? 7840 PMAX????????????????????????????????? 256
11 rows selected.? 使用快速刷新刷新物化视图 ACC_VIEW。
execute dbms_mview.refresh(ACC_VIEW,F) F 参数指示快速刷新。但如果表没有 MV 日志,它是否可以起作用?
刷新完成后,再次检查表 ACCOUNTS 的段统计信息。结果如下所示:
SUBOBJECT_NAME????????????????????? VALUE ------------------------------ ---------- P1?????????????????????????????????? 8320 P10????????????????????????????????? 8624 P2????????????????????????????????? 12112 P3????????????????????????????????? 14656 P4?????????????????????????????
文档评论(0)