加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2021-05-23 04:03:09 所属栏目:百科 来源:网络整理
导读:我在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操作继续阻止用户访问应用程序.

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读