我在创建 SQL 索引时犯了严重错误:
create index IDX_DATA_TABLE_CUSECO on DATA_TABLE (CUSTOMER_ID, SESSION_ID, CONTACT_ID)
tablespace IDX_TABLESPACE LOCAL ;
如您所见,我错过了关键字“ONLINE”来创建索引而不会阻塞具有 600m+ 记录的高使用率的 PRODUCTION 表。更正的 SQL 是:
create index IDX_DATA_TABLE_CUSECO on DATA_TABLE (CUSTOMER_ID, SESSION_ID, CONTACT_ID)
tablespace IDX_TABLESPACE LOCAL ONLINE;
我是在 PL/SQL Developer 下完成的。当我试图停止它时,程序停止响应并崩溃。
生产系统现在不能工作 9 个小时,我的老板想爆炸。:D
有没有机会查看 Oracle 11g 剩下多少秒/分钟/小时来处理这个索引创建?或者也许有机会看到 Oracle 是否仍在处理这个请求?(PL/SQL Developer 崩溃了)。
对于仇恨者:我知道我应该像这里提到的那样这样做:(来源)
CREATE INDEX cust_idx on customer(id) UNUSABLE LOCAL;
ALTER INDEX cust_idx REBUILD parallel 6 NOLOGGING ONLINE;