Oracle中加速索引创建或重建的方法

  1. 注意 10g当中 很多人认为 设置 手动PGA 和 sort_area_size + Parallel 并行即可加快 索引创建/重建。

    其实是不对的, 10g中存在bug 需要手动设置alter session set sort_area_size 2次。
    且在10.2.0.3和10.2.0.4 11.1 存在另一个bug 会导致Parallel Slave子进程不继承之前设置的sort_area_size,该bug可能在所有操作系统平台上发生,见文档 After applying 10.2.0.3 PATCHSET, the value set for SORT_AREA_SIZE on a session level is not propagated to the slaves.

    该bug影响的版本有

    Oracle Server – Enterprise Edition – Version: 10.2.0.3 to 11.1
    This problem can occur on any platform.
    10.2.0.3 ,10.2.0.4
    11.1

    已验证的11.2没有该问题

    可以通过设置SMRC来解决这个问题, 文档中脚本注释了和解决了该问题。

    这可能和大多数人 认识的 parallel+ sort_area_size 增速索引create/recreate 存在差异。

    具体排序区域内存使用了多少 可以在sort发生时 使用Script:List SORT ACTIVITY脚本 检验 以下脚本可以用于列出数据库内的排序活跃性能信息:
    http://www.oracledatabase12g.com/archives/script-list-sort-activity.html