Jawaban atas pertanyaan Anda - Ya, Urutan meja membuat perbedaan dalam bergabung.
Anda juga dapat memberi tahu pengoptimal tentang rencana eksekusi.
Petunjuk ORDERED menyebabkan Oracle menggabungkan tabel sesuai urutan kemunculannya dalam klausa FROM.
Misalnya, pernyataan ini menggabungkan tabel TAB1 ke tabel TAB2 dan kemudian menggabungkan hasilnya ke tabel TAB3:
SELECT /*+ ORDERED */ TAB1.COL1, TAB2.COL2, TAB3.COL3
FROM TAB1, TAB2, TAB3
WHERE TAB1.COL1 = TAB2.COL1
AND TAB2.COL1 = TAB3.COL1;
Jika Anda menghilangkan petunjuk ORDERED dari pernyataan SQL yang melakukan penggabungan, pengoptimal memilih urutan untuk bergabung dengan tabel. Anda mungkin ingin menggunakan petunjuk ORDERED untuk menentukan urutan gabungan jika Anda mengetahui sesuatu tentang jumlah baris yang dipilih dari setiap tabel yang tidak diketahui oleh pengoptimal. Informasi tersebut akan memungkinkan Anda memilih tabel dalam dan luar lebih baik daripada yang bisa dilakukan pengoptimal.
Biasanya, jika Anda menganalisis tabel, pengoptimal memilih paket bintang yang efisien. Anda juga dapat menggunakan petunjuk untuk meningkatkan rencana. Metode yang paling tepat adalah mengurutkan tabel dalam klausa FROM dalam urutan kunci dalam indeks, dengan tabel besar terakhir. Kemudian gunakan petunjuk berikut:
/*+ ORDERED USE_NL(FACTS) INDEX(FACTS FACT_CONCAT) */