2012-09-11 31 views
7

tôi đã sai lầm khủng khiếp trong việc tạo index SQL:Làm cách nào để kiểm tra trạng thái xây dựng chỉ mục trên Oracle 11?

create index IDX_DATA_TABLE_CUSECO on DATA_TABLE (CUSTOMER_ID, SESSION_ID, CONTACT_ID) 
    tablespace IDX_TABLESPACE LOCAL ; 

Như Bạn có thể thấy tôi đã bỏ lỡ từ khóa "ONLINE" để tạo chỉ số mà không ngăn chặn bàn SẢN với việc sử dụng cao với 600m + hồ sơ. SQL được sửa là:

create index IDX_DATA_TABLE_CUSECO on DATA_TABLE (CUSTOMER_ID, SESSION_ID, CONTACT_ID) 
    tablespace IDX_TABLESPACE LOCAL ONLINE; 

Tôi đã thực hiện nó trong Nhà phát triển PL/SQL. Khi tôi cố dừng chương trình, nó dừng đáp ứng và bị rơi.

Hệ thống sản xuất không hoạt động trong 9 giờ và sếp của tôi muốn phát nổ. : D

Có cơ hội nào để xem số phút còn lại của Oracle 11g để xử lý việc tạo chỉ mục này không? Hoặc có lẽ là có cơ hội để xem liệu Oracle vẫn làm việc trên yêu cầu này? (Nhà phát triển PL/SQL bị lỗi).

Đối với kẻ thù ghét: Tôi biết tôi nên làm điều này như đề cập ở đây: (source)

CREATE INDEX cust_idx on customer(id) UNUSABLE LOCAL; 
ALTER INDEX cust_idx REBUILD parallel 6 NOLOGGING ONLINE; 

+0

Liên kết của bạn có vẻ không hợp lệ. Tôi hy vọng rằng bất kỳ bài viết nào bạn đang xem ít nhất đều nói về cài đặt 'skip_unusable_indexes' trước khi yêu cầu bạn tạo chỉ mục không sử dụng được và nó cho bạn biết thay đổi cài đặt song song của chỉ mục khi nó được xây dựng. –

+2

Bài viết không, nhưng ý kiến ​​làm, và cũng giải thích tại sao lời khuyên không hữu ích như bạn nghĩ. Tôi đang ở với Justin, tại sao bạn không giết phiên chạy chỉ mục xây dựng? –

Trả lời

13

Bạn sẽ có thể xem được quá trình hoạt động trong 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 

Tất nhiên, trong một hệ thống sản xuất, tôi có thể đã giết chết phiên họp trước đây hơn là để cho hoạt động DDL tiếp tục được chuẩn bị trước t người dùng truy cập vào ứng dụng.

+0

Tôi không thể xem phiên của mình vì khi kết nối và phiên làm việc của Nhà phát triển PL/SQL bị lỗi nhưng khi tôi tính toán thống kê, tôi nhận được lỗi: Error report: ORA-20000: this index object "PRODSCHM"."IDX_DATA_TABLE_CUSECO" is being online built or rebuilt WBAR

+0

@WBAR - Tôi không chắc rằng tôi hiểu bạn đang nói. Thực tế là ứng dụng khách (PL/SQL Developer) bị lỗi không có gì liên quan đến việc phiên làm việc cơ sở dữ liệu vẫn đang chạy. Bạn có thấy phiên trong phiên $ v? –

+0

Tôi không thấy phiên đó – WBAR