2009-12-31 35 views

Trả lời

19

Chèn dữ liệu của bạn trước, sau đó tạo chỉ mục của bạn.

Mỗi lần bạn thực hiện thao tác UPDATE, INSERT hoặc DELETE, mọi chỉ mục trên bảng cũng phải được cập nhật. Vì vậy, nếu bạn tạo chỉ mục đầu tiên, và sau đó chèn 10M hàng, chỉ mục sẽ phải được cập nhật 10M lần (trừ khi bạn đang thực hiện các hoạt động hàng loạt).

6

Nhanh hơn và tốt hơn để chèn các bản ghi và sau đó tạo chỉ mục sau khi các hàng đã được nhập. Nó nhanh hơn bởi vì bạn không có chi phí bảo trì chỉ mục vì các hàng được chèn vào và nó tốt hơn từ quan điểm phân mảnh trên các chỉ mục của bạn.

Rõ ràng đối với chỉ mục duy nhất, hãy đảm bảo rằng dữ liệu bạn đang nhập là duy nhất để bạn không gặp phải lỗi khi cố tạo chỉ mục.

2

Như những người khác đã nói, hãy chèn trước và thêm chỉ mục sau. Nếu bảng đã tồn tại và bạn phải chèn một đống dữ liệu như thế này, hãy thả tất cả các chỉ mục và ràng buộc, chèn dữ liệu, sau đó áp dụng lại các chỉ mục đầu tiên của bạn và sau đó là các ràng buộc của bạn. Bạn chắc chắn sẽ muốn thực hiện các cam kết trung gian để giúp loại trừ khả năng bạn sẽ chạy ra khỏi không gian phân đoạn rollback hoặc một cái gì đó tương tự. Nếu bạn đang chèn nhiều dữ liệu này, nó có thể hữu ích khi xem xét việc sử dụng SQL * Loader để tiết kiệm thời gian và tình tiết tăng nặng.

Tôi hy vọng điều này sẽ hữu ích.

+0

"thường cam kết trong niềm tin sai lầm rằng bạn đang bảo tồn tài nguyên hoặc làm cho mọi thứ đi nhanh chỉ thực hiện điều này cho bạn: o làm chậm bạn xuống, vâng, đó là đúng, làm chậm bạn xuống - làm cho bạn chạy SLOOOWWWWEEERRR o không bảo tồn bất kỳ tài nguyên nào, trên thực tế, nó tiêu thụ nhiều hơn (bạn tạo ra nhiều hơn làm lại) o nghiêm túc đặt câu hỏi về tính toàn vẹn của dữ liệu của bạn " – Angelina

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