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

Thực thi khóa duy nhất / chính - giảm chỉ mục

Bạn có thể truy vấn ALL_CONSTRAINTS chế độ xem hiệu suất để xem ràng buộc nào mà chỉ mục được sử dụng và nó áp dụng cho bảng nào, ví dụ:

select owner, constraint_name, constraint_type,
    table_name, index_owner, index_name
from all_constraints
where index_name = 'PK_CHARGES';

Tôi mong đợi tên bảng là 'CHARGES', tên ràng buộc khớp với tên chỉ mục và kiểu ràng buộc là 'P'. Nhưng vì bạn có một bảng trong tâm trí, có lẽ các tên không tuân theo một quy ước hữu ích. Có thể một phiên bản cũ của bảng đã được đổi tên, điều này sẽ để lại những hạn chế đối với tên mới (ví dụ:CHARGES_BACKUP hoặc cái gì đó).

Bạn nói rằng bạn nhấp vào bảng, sau đó nhấp vào xem. Có lẽ bạn không nhìn vào bảng có ràng buộc / chỉ mục; hoặc có lẽ bạn đang xem một chế độ xem trên đầu bảng thực tế. Bạn cũng đề cập đến một SYS_ chỉ mục trên các cột giống nhau - không thể nằm trên cùng một bảng. Bạn có nhiều bảng tương tự hay quyền truy cập vào nhiều lược đồ? Bạn cũng chạy truy vấn trên cho chỉ mục đó. Như đã đề cập ở trên, bạn có thể tìm thấy phiên bản cũ (hoặc các phiên bản) của bảng.

Khi bạn đã xác định bảng nào bị ràng buộc, bạn sẽ cần quyết định xem bạn có thực sự nên giữ nó hay không, và nếu không, bạn có thể xóa nó bằng cách bỏ ràng buộc bằng ALTER TABLE lệnh.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tách một chuỗi trong Oracle

  2. Thực thi tập lệnh SQL thành oracle db một câu lệnh tại một thời điểm

  3. Oracle 12c XML nhận giá trị từ phản hồi

  4. tính năng tự động gia tăng oracle với trình tự và trình kích hoạt không hoạt động chính xác

  5. Chèn vào Oracle và truy xuất ID trình tự đã tạo