[oracle]Oracle 12C-drop和truncate分区的异步全局索引维护

举报
dber 发表于 2021/01/18 18:22:15 2021/01/18
【摘要】 分区的异步全局索引维护时间修改

分区维护操作DROP partitionTRUNCATE partition通过只对元数据进行索引维护而得到优化。DROPTRUNCATE操作默认进行异步全局索引维护;但是,为了向后兼容,仍然需要update indexes子句。

异步全局索引维护的限制:

  • 仅在堆表上执行
  • 不支持具有对象类型的表
  • 不支持带有域索引的表
  • sys系统用户无法执行

 索引的维护操作通过自动调度程序作业SYS.PMO_DEFERRED_GIDX_MAINT_JOB清理所有全局索引。默认情况下,此作业计划每天凌晨2:00运行。可以随时使用DBMS_SCHEDULER.RUN_JOB手工清理索引。

还可以根据需求修改作业以使用不同的计划或者时间运行。注意,Oracle建议您不要放弃该工作。

 可以使用以下方式强制触发:

  • DBMS_PART.CLEANUP_GIDX -PL/SQL过程收集系统中可能需要清除的全局索引列表,并运行将索引恢复到清除状态所需的操作。
  • ALTER INDEX REBUILD [PARTITION]]SQL语句重建整个索引或索引分区,就像在Oracle Database 12c Release 112.1)之前的版本中所做的那样。结果索引(分区)不包含任何过时的项。
  • ALTER INDEX REBUILD [PARTITION]]–此SQL语句重建整个索引或索引分区,就像在Oracle Database 12c Release 1(12.1)之前的版本中所做的那样。结果索引(分区)不包含任何过时的项。

详细内容可参考官方文档:

http://docs.oracle.com/database/121/VLDBG/GUID-087B87A6-959A-40C6-82AF-36E401FD089B.htm#VLDBG14107


修改延时索引维护时间

select * from dba_scheduler_jobs where job_name = 'PMO_DEFERRED_GIDX_MAINT_JOB'

select * from dba_scheduler_jobs where job_name='PMO_DEFERRED_GIDX_MAINT_JOB';

BEGIN

sys.dbms_scheduler.set_attribute( name => '"SYS"."PMO_DEFERRED_GIDX_MAINT_SCHED"', attribute => 'repeat_interval', value => 'FREQ=DAILY;BYHOUR=19;BYMINUTE=00;BYSECOND=0');

END;

/

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。