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

Một chỉ mục là nhóm hay không được gộp trong Oracle?

Theo mặc định, tất cả các chỉ mục trong Oracle là không hợp nhất. Các chỉ mục được phân cụm duy nhất trong Oracle là chỉ mục khóa chính của các bảng được tổ chức theo chỉ mục (IOT).

Bạn có thể xác định xem một bảng có phải là IOT hay không bằng cách xem IOT_TYPE trong ALL_TABLES xem (khóa chính của nó có thể được xác định bằng cách truy vấn ALL_CONSTRAINTSALL_CONS_COLUMNS lượt xem).

Dưới đây là một số lý do tại sao truy vấn của bạn có thể trả về các hàng đã sắp xếp:

  1. Bảng của bạn được tổ chức theo chỉ mục và FIELD là phần chính của khóa chính.
  2. Bảng của bạn được sắp xếp theo nhóm nhưng các hàng tình cờ được sắp xếp theo FIELD , điều này đôi khi xảy ra trên cột nhận dạng tăng dần.

Trường hợp 2 sẽ chỉ trả về các hàng đã sắp xếp một cách tình cờ. Thứ tự của các phần chèn không được đảm bảo, hơn nữa Oracle có thể tự do sử dụng lại các khối cũ nếu một số khối còn trống trong tương lai, làm gián đoạn trật tự mong manh.

Trường hợp 1 hầu hết thời gian sẽ trả về các hàng có thứ tự, tuy nhiên bạn không nên dựa vào nó vì thứ tự của các hàng được trả về phụ thuộc vào thuật toán của đường dẫn truy cập có thể thay đổi trong tương lai (hoặc nếu bạn thay đổi tham số DB, đặc biệt là tính song song ).

Trong cả hai trường hợp, nếu bạn muốn các hàng có thứ tự, bạn nên cung cấp mệnh đề ORDER BY:

SELECT field 
  FROM (SELECT field 
          FROM TABLE 
         ORDER BY field) 
 WHERE rownum <= 100;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để kết nối với cơ sở dữ liệu Oracle từ Ant bằng cách sử dụng tnsname?

  2. Phiên bản Oracle được nhúng hoặc quản lý để kiểm tra tích hợp

  3. Đọc BLOB bằng JDBC Spring mà không có tập hợp kết quả

  4. Xóa số giờ trùng lặp khỏi số ngày không làm việc

  5. Hàm pl / sql được gọi bao nhiêu lần?