Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Sau khi thả phân vùng, chỉ mục trở nên không sử dụng được, tôi phải làm gì,

  • ANALYZE TABLE không xây dựng lại chỉ mục, phải không?

    Tôi không biết nhưng ngày nay bạn nên sử dụng DBMS_STATS.GATHER_TABLE_STATS chứ không phải là ANALYZE TABLE

  • Tải trực tiếp có nghĩa là dữ liệu không được chèn từng hàng mà ở dạng hàng loạt, hãy xem Tải đường dẫn trực tiếp

  • Nếu chỉ mục của bạn trở thành UNUSABLE thì nó phải là một chỉ mục toàn cầu.

  • Sử dụng UPDATE GLOBAL INDEXES mệnh đề, tức là alter table target_table drop partition target_eldest_partition UPDATE GLOBAL INDEXES; hoặc tạo chỉ mục cục bộ.

  • Phụ thuộc vào cột bạn đã lập chỉ mục. Thay vì toàn bộ bảng, bạn cũng có thể chạy DBMS_STATS.GATHER_INDEX_STATS . Với DBMS_STATS.GATHER_TABLE_STATS bạn cũng có thể chỉ định các phân vùng đơn lẻ và thậm chí cả các cột đơn lẻ.

btw, đối với nhiều câu hỏi, câu trả lời của tôi thực sự phải là:"Bạn có tham khảo tài liệu Oracle không"? hoặc "Bạn có biết google" không? Theo ảnh chụp màn hình của bạn, bạn sử dụng lược đồ SYS và vùng bảng SYSAUX cho các đối tượng người dùng của bạn. Bạn không nên làm điều đó. Tạo người dùng của riêng bạn và tạo bất kỳ đối tượng nào trong giản đồ này.

Nói chung, có ba loại chỉ mục được phân vùng:

  1. CHỈ SỐ TOÀN CẦU:Bạn có một chỉ mục lớn trải dài trên toàn bộ bảng. Điều này là bắt buộc đối với các CHỈ SỐ DUY NHẤT nếu các cột được lập chỉ mục không phải là một phần của khóa phân vùng. Trên thực tế, chỉ mục như vậy không được phân vùng. (như được hiển thị trong ALL_INDEXES )
  2. CHỈ SỐ ĐỊA PHƯƠNG:Chỉ mục này được phân vùng theo cách giống như bảng bên dưới. Mỗi phân vùng bảng có một phân vùng chỉ mục.
  3. PARTITIONED INDEX:Chỉ mục này được phân vùng nhưng khác nhau hơn bảng bên dưới. Tôi nghĩ rằng thậm chí có thể tạo một chỉ mục được phân vùng trên một bảng không được phân vùng. Chỉ mục được phân vùng chỉ được giới hạn trong các trường hợp sử dụng rất đặc biệt. Trên thực tế, tôi không thể tưởng tượng nơi mà chỉ số như vậy sẽ có ý nghĩa.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giá trị của dữ liệu theo thời gian

  2. SQL - Chia một cột thành nhiều cột

  3. Xóa các hàng trùng lặp trong Oracle SQL, để lại các mục mới nhất

  4. cách gửi tham số để kích hoạt trong Oracle

  5. Oracle không xóa con trỏ sau khi đóng tập kết quả