| ORACLE 10G分区表维护:全局索引和物化视图 |
| 来源:
发布时间:2008-04-21 发布人:
浏览:
人次
字体:
[大
中
小]
|
|
ORACLE 10G R2 1.全局索引 SQL> alter table analyse_content truncate subpartition DATA0712_DEYANG; Table truncated truncate分区后,修改或者插入数据报错: ORA-01502: index 'phs.pk' or partition of such index is in unusable state 这个时候只能rebuild index SQL> alter index phs.pk rebuild; Index altered 执行以后恢复正常,或者使用如下语句: SQL> alter table analyse_content truncate subpartition DATA0712_ZIGONG UPDATE GLOBAL INDEXES; Table truncated 这样它会自动恢复索引。 2.物化视图 对于已经建有fast refresh view的分区表来说,truncate和drop分区/表会导致物化视图出错。 SQL> alter table analyse_content drop subpartition DATA0712_MIANYANG; Table altered SQL> alter table analyse_content truncate subpartition DATA0712_LUZHOU; Table truncated 再次查询物化视图,这个两个分区的数据仍然存在,说明物化视图不能对这种DDL语句进行更新。 尝试在基础表插入数据,报错: ORA-32313: REFRESH FAST of " " unsupported after PMOPs 这时候必须手工刷新MV SQL> exec dbms_mview.refresh('mv_analyse_content','f'); begin dbms_mview.refresh('mv_analyse_content','f'); end; ORA-32313: PMOP 之后不支持 "PHS"."MV_ANALYSE_CONTENT" 的 REFRESH FAST ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2255 ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2461 ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2430 ORA-06512: 在 line 1 看来快速刷新'f'是不行,还是得完全刷新'c' SQL> exec dbms_mview.refresh('mv_analyse_content','c'); PL/SQL procedure successfully completed 执行完后,MV里面的数据恢复正常,基表不再报错。 实际10g里面,truncate分区后,某些物化视图可以执行fast refresh,具体有很多限制, 要查询doc,反正select * from table这种视图肯定可以'f',不过却没有什么意义。 但是这样有一个问题,对于海量数据库,如果不能使用DROP分区,则delete相当慢。 如果使用了,又会导致完全刷新MV,同样慢。 可能要考虑针对分区来建MV了。 对于分区表 已经相关索引,快照的维护,建议还是参考Oracle的DOC,在admin guide和 dataware house guide里有非常完善描述。虽然没有涉及internal,应用完全足够了。
| |
| |
|
|
|
|
| §最新评论:(评论内容只代表网友观点,与本站立场无关!) | |
|
|
|
|
| 注意:请勿在本站发布政治话题、色情及违反法律的内容。 |
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。 |