-
ANALYZE TABLE tidak membangun kembali indeks, kan?
Saya tidak tahu tetapi saat ini Anda harus menggunakan
DBMS_STATS.GATHER_TABLE_STATS
daripadaANALYZE TABLE
-
Pemuatan langsung berarti data tidak dimasukkan baris demi baris tetapi sebagai massal, lihat Pemuatan Jalur Langsung
-
Jika indeks Anda menjadi
UNUSABLE
maka itu harus berupa indeks global. -
Gunakan
UPDATE GLOBAL INDEXES
klausa, yaitualter table target_table drop partition target_eldest_partition UPDATE GLOBAL INDEXES;
atau buat indeks lokal. -
Tergantung pada kolom mana yang telah Anda indeks. Alih-alih seluruh tabel, Anda juga dapat menjalankan
DBMS_STATS.GATHER_INDEX_STATS
. DenganDBMS_STATS.GATHER_TABLE_STATS
Anda juga dapat menentukan hanya satu partisi dan bahkan satu kolom.
btw, untuk banyak pertanyaan, jawaban saya sebenarnya adalah:"Apakah Anda berkonsultasi dengan dokumentasi Oracle"? atau "Apakah Anda tahu google"? Menurut tangkapan layar Anda, Anda menggunakan skema SYS
dan tablespace SYSAUX
untuk objek pengguna Anda. Anda tidak harus melakukan itu. Buat pengguna Anda sendiri dan buat objek apa pun dalam skema ini.
Secara umum ada tiga jenis indeks yang dipartisi:
- GLOBAL INDEX:Anda memiliki satu indeks besar yang mencakup seluruh tabel. Ini wajib misalnya untuk INDEKS UNIK jika kolom yang diindeks bukan bagian dari kunci partisi. Sebenarnya indeks tersebut tidak dipartisi. (seperti yang ditunjukkan dalam
ALL_INDEXES
) - LOCAL INDEX:Indeks ini dipartisi dengan cara yang sama seperti tabel dasarnya. Setiap partisi tabel memiliki partisi indeks yang sesuai.
- INDEX YANG DIPARTISISI:Indeks ini dipartisi tetapi berbeda daripada tabel di bawahnya. Saya pikir bahkan mungkin untuk membuat indeks yang dipartisi pada tabel yang tidak dipartisi. Indeks yang dipartisi terbatas pada kasus penggunaan yang sangat khusus saja. Sebenarnya saya tidak bisa membayangkan di mana indeks seperti itu masuk akal.