2011-08-10 29 views
11

Có an toàn khi tạo chỉ mục trên bảng hiện có trong oracle không?Tạo chỉ mục trên bảng hiện có Oracle

Như thế này:

CREATE INDEX table_sample_ix03 
     ON table_sample 
(
    col4, 
    col22 
) 
TABLESPACE data 
STORAGE 
(
    INITIAL  10M NEXT   2M 
    MINEXTENTS  1  MAXEXTENTS 100 
    PCTINCREASE  0 
) 
; 

Trả lời

7

Yes. Nhưng nếu có thể, bạn nên làm điều đó trong khi không ai cập nhật bảng, bởi vì họ sẽ bị hiệu suất khôn ngoan (nó vẫn an toàn để làm điều đó anyway, sẽ không có tham nhũng dữ liệu).

1

Có. Tại sao nó sẽ không được?

Tôi chỉ có thể nghĩ về các vấn đề hiệu suất có thể ngay sau khi phát lệnh. Nếu bảng là rất lớn, việc lập chỉ mục có thể mất một thời gian nhưng khác hơn thế, nó sẽ ổn thôi.

11

Điều khoản ONLINE được khuyến nghị khi bạn tạo chỉ mục trong khi các truy vấn DML đang được chạy trên bảng. Xem http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5010.htm

Ví dụ:

CREATE INDEX "MYINDEX" ON "MYTABLE" ("MYCOLUMN") ONLINE; 
+1

Từ liên kết của bạn: _ "Chỉ TRỰC TUYẾN để chỉ ra rằng dữ liệu Manipulation Language (DML) hoạt động trên bàn sẽ được phép trong quá trình tạo của chỉ số" _ 'Create' là hoạt động Ngôn ngữ Định nghĩa Dữ liệu (DDL) và có các Hạn chế về Xây dựng Chỉ mục Trực tuyến. – javaPlease42

+0

không có báo giá và không gian trống ....! CREATE INDEX ix_customernumber ON lp_temp_deactMobiel (customernumber) TRỰC TUYẾN; – laurens

Các vấn đề liên quan