Bạn phân vùng bảng trên cờ hiện hoạt, để các bản ghi hoạt động nằm trong một phân vùng và các bản ghi không hoạt động nằm trong phân vùng kia. Sau đó, bạn tạo một dạng xem hiện hoạt cho mỗi bảng mà tự động có bộ lọc hoạt động trên đó. Công cụ truy vấn cơ sở dữ liệu tự động giới hạn truy vấn trong phân vùng có các bản ghi đang hoạt động trong đó, nhanh hơn nhiều so với việc sử dụng chỉ mục trên cờ đó.
Đây là một ví dụ về cách tạo một bảng được phân vùng trong Oracle. Oracle không có các kiểu cột boolean, vì vậy tôi đã sửa đổi cấu trúc bảng của bạn cho mục đích Oracle.
CREATE TABLE people
(
id NUMBER(10),
name VARCHAR2(100),
active NUMBER(1)
)
PARTITION BY LIST(active)
(
PARTITION active_records VALUES (0)
PARTITION inactive_records VALUES (1)
);
Nếu bạn muốn, bạn có thể đặt mỗi phân vùng trong các không gian bảng khác nhau. Bạn cũng có thể phân vùng các chỉ mục của mình.
Ngẫu nhiên, điều này dường như lặp lại cái này câu hỏi, với tư cách là một người mới, tôi cần hỏi, quy trình xử lý các bản sao không mong muốn là gì?
Chỉnh sửa: Như được yêu cầu trong nhận xét, đã cung cấp một ví dụ để tạo một bảng được phân vùng trong Oracle