前几天体会到保持好的习惯不容易, 在一个几十个GB的分区表上建一个索引, 为了加快速度, 就用了并行. 命令如下所示:
CREATE INDEX ... ON ... (...) PARALLEL 2 LOCAL ONLINE;
ALTER INDEX ... NOPARALLEL;
ANALYZE INDEX ... ESTIMATE STATISTICS SAMPLE 10000 ROWS;
ANALYZE INDEX ... ESTIMATE STATISTICS SAMPLE 2 PERCENT;
其实这样也算不错了, 不应当有什么大问题的. 结速跑完后, 看到有50个并行的进程, 第二句执行失败, 索引的并行度不为1, 还好是在主要用于灾难备份的只读节点上做时先发现的. 主要原因是心中认为这个表并不是很忙的, 就不考虑ORA-00054这个错误的处理了, 差点就造成问题了.
要保持一个好的习惯真不容易, 心中不是不知道, 有时就是懒一些, 不想贴那么多的PL/SQL代码进去, 这不是知识点的问题, 这只是一个习惯上的问题, 其他类似需要注意的事情, 如用一句话执行UPDATE或DELETE, 更新或删除了大量的记录, 这种情况一般要求写一段PL/SQL来分段提交地处理.
一年时间培养一个高级DBA, 绝不是将所有的知识灌进去, 而是指做事能让人放心, 有很好的习惯.