Anda mempartisi tabel pada flag aktif, sehingga record aktif berada di satu partisi, dan record tidak aktif berada di partisi lain. Kemudian Anda membuat tampilan aktif untuk setiap tabel yang secara otomatis memiliki filter aktif di atasnya. Mesin kueri basis data secara otomatis membatasi kueri ke partisi yang memiliki catatan aktif di dalamnya, yang jauh lebih cepat daripada menggunakan indeks pada flag itu.
Berikut adalah contoh cara membuat tabel yang dipartisi di Oracle. Oracle tidak memiliki tipe kolom boolean, jadi saya telah memodifikasi struktur tabel Anda untuk tujuan 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)
);
Jika Anda mau, Anda bisa meletakkan setiap partisi di tablespace yang berbeda. Anda juga dapat mempartisi indeks Anda.
Kebetulan, ini sepertinya pengulangan ini pertanyaan, sebagai pemula saya perlu bertanya, bagaimana prosedur menangani duplikat yang tidak diinginkan?
Sunting: Seperti yang diminta dalam komentar, berikan contoh untuk membuat tabel yang dipartisi di Oracle