Как проверить состояние построения индекса в Oracle 11?
Я сделал ужасную ошибку в создании индекса SQL:
create index IDX_DATA_TABLE_CUSECO on DATA_TABLE (CUSTOMER_ID, SESSION_ID, CONTACT_ID)
tablespace IDX_TABLESPACE LOCAL ;
как вы можете видеть, я пропустил ключевое слово "Онлайн" для создания индекса без блокировки производственной таблицы с высоким использованием с 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 разбился).
для ненавистников: Я знаю, что должен сделать это, как указано здесь: (источник)
CREATE INDEX cust_idx on customer(id) UNUSABLE LOCAL;
ALTER INDEX cust_idx REBUILD parallel 6 NOLOGGING ONLINE;
1 ответов
вы должны иметь возможность просматривать прогресс работы в 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 продолжать препятствовать пользователям получать доступ к приложению.