我在创建SQL索引时犯了一个严重的错误:
create index IDX_DATA_TABLE_CUSECO on DATA_TABLE (CUSTOMER_ID, SESSION_ID, CONTACT_ID)
tablespace IDX_TABLESPACE LOCAL ;
如您所见,我错过了关键字“ONLINE”,以避免在高使用率的生产表中创建索引,该表拥有600m+记录。更正后的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崩溃)。
针对那些抱怨的人:
我知道我应该按照这里提到的方法进行操作:(source)
CREATE INDEX cust_idx on customer(id) UNUSABLE LOCAL;
ALTER INDEX cust_idx REBUILD parallel 6 NOLOGGING ONLINE;