资源预览内容
第1页 / 共41页
第2页 / 共41页
第3页 / 共41页
第4页 / 共41页
第5页 / 共41页
第6页 / 共41页
第7页 / 共41页
第8页 / 共41页
第9页 / 共41页
第10页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Oracle 10g分区表维护中的两个注意事项1.全局索引 SQL alter table analyse_content truncate subpartition DATA0712_DEYANG; 网管论坛bbs.ofAdmin.Com Table truncated truncate分区后,修改或者插入数据报错: ORA-01502: index phs.pk or partition of such index is in unusable state这个时候只能rebuild index IT技术网Www.ofAdmin.Com SQL alter index phs.pk rebuild; Index altered 华夏网管Www.ofAdmin.Com 执行以后恢复正常,或者使用如下语句: IT技术社区bbs.ofAdmin.Com SQL alter table analyse_content truncate subpartition DATA0712_ZIGONG UPDATEGLOBAL INDEXES; IT技术社区bbs.ofAdmin.Com Table truncated 网管网ofAdmin.Com 这样它会自动恢复索引。 华夏网管论坛bbs.ofAdmin.Com 2.物化视图 网管网ofAdmin.Com 对于已经建有fast refresh view的分区表来说,truncate和drop分区表会导致物化视图出错。 IT技术网Www.ofAdmin.Com SQL alter table analyse_content drop subpartition DATA0712_MIANYANG; 网管论坛bbs.ofAdmin.Com Table altered SQL alter table analyse_content truncate subpartition DATA0712_LUZHOU; 网管Www.ofAdmin.Com Table truncated 华夏网管Www.ofAdmin.Com 再次查询物化视图,这个两个分区的数据仍然存在,说明物化视图不能对这种DDL语句进行更新。网管网ofAdmin.Com尝试在基础表插入数据,报错: 华夏网管ofAdmin.Com ORA-32313: REFRESH FAST of unsupported after PMOPs 这时候必须手工刷新MV 网管Www.ofAdmin.Com SQL exec dbms_mview.refresh(mv_analyse_content,f); 华夏网管论坛bbs.ofAdmin.Com begin dbms_mview.refresh(mv_analyse_content,f); end; 网管网ofAdmin.Com ORA-32313: PMOP 之后不支持 PHS.MV_ANALYSE_CONTENT 的 REFRESH FAST 华夏网管论坛bbs.ofAdmin.Com ORA-06512: 在 SYS.DBMS_SNAPSHOT, line 2255 华夏网管论坛bbs.ofAdmin.Com ORA-06512: 在 SYS.DBMS_SNAPSHOT, line 2461 网管Www.ofAdmin.Com ORA-06512: 在 SYS.DBMS_SNAPSHOT, line 2430 ORA-06512: 在 line 1 看来快速刷新f是不行,还是得完全刷新c SQL exec dbms_mview.refresh(mv_analyse_content,c); 网管网ofAdmin.Com PL/SQL procedure successfully completed 网管论坛bbs.ofAdmin.Com 执行完后,MV里面的数据恢复正常,基表不再报错。 实际10g里面,truncate分区后,某些物化视图可以执行fast refresh,具体有很多限制, IT技术社区bbs.ofAdmin.Com 要查询doc,反正select * from table这种视图肯定可以f,不过却没有什么意义。 2008 04 22 在doc上找到了PCT特性的限制,如下: IT技术网Www.ofAdmin.Com At least one of the detail tables referenced by the materialized view must be partitioned. 华夏网管ofAdmin.Com Partitioned tables must use either range, list or composite partitioning. 网管Www.ofAdmin.Com The top level partition key must consist of only a single column. 网管论坛bbs.ofAdmin.Com The materialized view must contain either the partition key column or a partition marker or ROWID or join dependent expression of the detail table. See 网管论坛bbs.ofAdmin.Com Database PL/SQL Packages and Types Reference for details regarding the DBMS_ 网管网ofAdmin.Com MVIEW.PMARKER function. 网管网ofAdmin.Com If you use a GROUP BY clause, the partition key column or the partition marker or IT技术网Www.ofAdmin.Com ROWID or join dependent expression must be present in the GROUP BY clause. 网管网ofAdmin.Com If you use an analytic window function or the MODEL clause, the partition key column or the partition marker or ROWID or join dependent expression must be 华夏网管Www.ofAdmin.Com present in their respective PARTITION BY subclauses. 华夏网管ofAdmin.Com Data modifications can only occur on the partitioned table. If PCT refresh is being 网管Www.ofAdmin.Com done for a table which has join dependent expression in the materialized view, IT技术网Www.ofAdmin.Com then data modifications should not have occurred in any of the join dependent 网管论坛bbs.ofAdmin.Com tables. 华夏网管论坛bbs.ofAdmin.Com The COMPATIBILITY initialization parameter must be a minimum of 9.0.0.0.0. PCT is not supported for a materialized view that refers to views, remote tables, or 华夏网管ofAdmin.Com outer joins. 网管网ofAdmin.Com PCT-based refresh is not supported for UNION ALL materialized views. 对于海量数据库,如果不能使用DROP分区,则delete相当慢。华夏网管Www.ofAdmin.Com如果使用了,又会导致完全刷新MV,同样慢。华夏网管论坛bbs.ofAdmin.Com在物化视图的时候要认真考虑PCT特性。 华夏网管Www.ofAdmin.Com 对于分区表 已经相关索引,快照的维护,建议还是参考的DOC,在admin guide和 IT技术网Www.ofAdmin.Com dataware house guide里有非常完善描述。虽然没有涉及internal,但完全可以满足应用。 Oracle数据库10g中的分区功能 Oracle 分区功能可以提高许多应用程序的可管理性、性能与可用性。通过分区功能,可以将表、索引和索引组织表进一步细分为段,从而能够更精确的管理和访问这些数据库对象。Oracle 提供了种类繁多的分区方案以满足每种业务要求。而且,因为在 SQL 语句中分区是完全透明的,所以该功能几乎可应用于任何应用程序。分区功能的优势分区功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。通常,分区可以使某些查询以及维护操作的性能大大提高。此外,分区还可以极大简化常见的管理任务。通过分区,数据库设计人员和管理员能够解决前沿应用程序带来的一些难题。分区是构建千兆字节数据系统或超高可用性系统的关键工具。分区功能的基本知识分区功能能够将表、索引或索引组织表进一步细分为段。这些数据库对象的段叫做分区。每个分区有自己的名称,还可以选择自己的存储特性。从数据库管理员的角度来看,一个分区后的对象具有多个段,这些段既可进行集体管理,也可单独管理。这就使数据库管理员在管理分区后的对象时有相当大的灵活性。但是,从应用程序的角度来看,分区后的表与非分区表完全相同,使用 SQL DML 命令访问分区后的表时,无需任何修改。表的分区是通过“分区键”来实现的,分区键指的是一些列,这些列决定了某一行所在的分区。Oracle 数据库 10g 提供了六项技术用于对表进行分区:范围分区每个分区都由一个分区键值范围指定(对于一个以日期列作为分区键的表,“2005 年 1 月”分区包含分区键值为从“2005 年 1 月 1 日”到“2005 年 1 月 31 日”的行)。列表分区每个分区都由一个分区键值列表指定(对于一个地区列作为分区键的表,“北美”分区可能包含值“加拿大”“美国”和“墨西哥”)。散列分区将散列算法用于分区键来确定指定行所在的分区组合范围-散列分区范围和散列分区技术的组合,通过该组合,首先对表进行范围分区,然后针对每个单独的
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号