爱是王道 发表于 2018-9-23 10:39:02

【转】oracle分区表总结

默认时,对分区表的许多表维护操作会使全局索引不可用,标记成UNUSABLE。 那么就必须重建整个全局索引或其全部分区。如果已被分区,Oracle 允许在用于维护操作的ALTER TABLE 语句中指定UPDATE GLOBAL INDEXES 来重载这个默认特性,指定这个子句也就告诉Oracle 当它执行维护操作的DDL 语句时更新全局索引,这提供了如下好处:  1.在操作基础表的同时更新全局索引这就不需要后来单独地重建全局索引;
  2.因为没有被标记成UNUSABLE, 所以全局索引的可用性更高了,甚至正在执行分区的DDL 语句时仍然可用索引来访问表中的其他分区,避免了查询所有失效的全局索引的名字以便重建它们;
  另外在指定UPDATE GLOBAL INDEXES 之前还要考虑如下性能因素:
  1.因为要更新事先被标记成UNUSABLE 的索引,所以分区的DDL 语句要执行更长时间,当然这要与先不更新索引而执行DDL 然后再重建索引所花的时间做个比较,一个适用的规则是如果分区的大小小于表的大小的5% ,则更新索引更快一点;
  2.DROP TRUNCATE 和EXCHANGE 操作也不那么快了,同样这必须与先执行DDL 然后再重建所有全局索引所花的时间做个比较;
  3.要登记对索引的更新并产生重做记录和撤消记录,重建整个索引时可选择NOLOGGING;
  4.重建整个索引产生一个更有效的索引,因为这更利于使用空间,再者重建索引时允许修改存储选项。
  注意分区索引结构表不支持UPDATE GLOBAL INDEXES 子句。

页: [1]
查看完整版本: 【转】oracle分区表总结