Rumah > pangkalan data > Oracle > Bagaimanakah Oracle menentukan sama ada indeks tidak sah?

Bagaimanakah Oracle menentukan sama ada indeks tidak sah?

WBOY
Lepaskan: 2022-05-25 15:31:15
asal
6183 orang telah melayarinya

Dalam Oracle, anda boleh menggunakan pernyataan "pilih status daripada indeks_pengguna di mana index_name='nama indeks';" untuk menentukan sama ada indeks itu tidak sah jika hasil yang dikembalikan adalah SAH, ini bermakna indeks itu tidak tidak sah, jika tidak, ia bermakna indeks itu tidak sah.

Bagaimanakah Oracle menentukan sama ada indeks tidak sah?

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi Oracle 11g, komputer Dell G3.

Bagaimana Oracle menentukan sama ada indeks tidak sah

Sintaks adalah seperti berikut:

select status from user_indexes where index_name='索引名称';
Salin selepas log masuk

Jika hasil pulangan adalah SAH, ini bermakna indeks adalah sah!

Contohnya adalah seperti yang ditunjukkan dalam rajah:

Bagaimanakah Oracle menentukan sama ada indeks tidak sah?

Pengetahuan lanjutan:

Penyelesaian kepada kegagalan indeks

1 Pilih pengoptimum Oracle yang sesuai

Terdapat tiga jenis pengoptimum Oracle:

a RULE (berasaskan peraturan) b. PILIH (selektif) ).

Tetapkan pengoptimum lalai melalui pelbagai pengisytiharan parameter OPTIMIZER_MODE dalam fail init.ora, seperti RULE, COST, CHOOSE, ALL_ROWS, FIRST_ROWS. Sudah tentu anda juga mengatasinya pada peringkat pernyataan SQL atau peringkat sesi.

Untuk menggunakan Pengoptimum Berasaskan Kos (CBO, Pengoptimum Berasaskan Kos), anda mesti menjalankan arahan analisis dengan kerap untuk meningkatkan ketepatan statistik objek dalam pangkalan data.

Jika mod pengoptimum pangkalan data ditetapkan kepada terpilih (PILIH), mod pengoptimuman sebenar akan dikaitkan dengan sama ada arahan analisis telah dijalankan. Jika jadual telah dianalisis, mod pengoptimum secara automatik akan menjadi CBO Jika tidak, pangkalan data akan menggunakan bentuk RULE pengoptimum.

(Analisis jadual

analyze table PROD_PARTS compute statistics;
ANALYZE TABLE PROD_PARTS COMPUTE STATISTICS FOR ALL INDEXED COLUMNS;
analyze table PROD_PARTS compute statistics for table for all indexes for all indexed columns;
Salin selepas log masuk

) [Selepas kegagalan indeks, selepas berunding dengan DBA, saya mendapati bahawa ia adalah masalah dengan statistik data Penyelesaian khusus adalah untuk melaksanakan pernyataan di atas ]

Secara lalai, Oracle menggunakan pengoptimum CHOOSE Untuk mengelakkan imbasan jadual penuh yang tidak diperlukan, anda mesti cuba mengelak daripada menggunakan pengoptimum CHOOSE dan terus menggunakan pengoptimum berasaskan peraturan atau berasaskan kos.

2. ‍Bina semula indeks

‍alter index 索引名 rebuild 【online】
Salin selepas log masuk

3. Paksa indeks

Selepas menambah pembayang pada pernyataan, paksa untuk menggunakan indeks 'RECORD_ENTITYID'

Pernyataan sql menjadi seperti ini

Rujukan

select /*+ index(record,record_entityid) */ *
from RECORD
where entityId='24' and entityType='blog';
Salin selepas log masuk

/* index(record,record_entityid) */ In, index bermaksud penggunaan paksa indeks, rekod ialah nama jadual, record_entityid ialah nama indeks. Pelan pelaksanaan adalah konsisten dengan pangkalan data ujian, kedua-duanya menggunakan indeks 'RECORD_ENTITYID' dan logik baca dan tulis juga 4.

Selepas ujian kemudian, selepas menganalisis jadual dan kedua-dua indeks tanpa menambah petunjuk, indeks 'RECORD_ENTITYID' juga boleh digunakan. Walau bagaimanapun, kerana jadual dikemas kini agak kerap, saya tidak tahu berapa lama masa yang diperlukan untuk menganalisisnya semula

Tutorial yang disyorkan: "Tutorial Video Oracle"

Atas ialah kandungan terperinci Bagaimanakah Oracle menentukan sama ada indeks tidak sah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan