如何在Oracle 11上检查索引构建状态?

我在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”来创建索引而不会阻止具有600m记录的高使用率的PRODUCTION表.更正的SQL是:

create index IDX_DATA_TABLE_CUSECO on DATA_TABLE (CUSTOMER_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;

您应该能够在V $SESSION_LONGOPS中查看操作的进度

SELECT sid,serial#,target,target_desc,sofar,totalwork,start_time,time_remaining,elapsed_seconds
  FROM v$session_longops
 WHERE time_remaining > 0

当然,在生产系统中,我可能会在几小时前杀死会话,而不是让DDL操作继续阻止用户访问应用程序.

关于作者: dawei

【声明】:石家庄站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐