Bisakah seseorang menjelaskan sedikit tentang menjelaskan rencana, dan bagaimana seseorang mendapatkan rencana menjelaskan untuk kueri. Juga, jika ada skrip sql yang dapat digunakan sebagai utilitas untuk ini, itu akan bagus.
oracle
oracle-11g-r2
pengguna419534
sumber
sumber
Jawaban:
Anda dapat menggunakan paket DBMS_XPLAN :
sumber
Ganti ... dengan Pernyataan SQL Anda. Setelah menjalankan ini jalankan yang berikut untuk melihat paket:
Untuk informasi lebih lanjut, lihat bagian Ikhtisar atau Penggunaan di Oracle 11g Performance Tuning Guide.
sumber
Perkiraan rencana eksekusi SQL
Perkiraan rencana eksekusi dihasilkan oleh Pengoptimal tanpa menjalankan kueri SQL. Anda dapat membuat estimasi rencana eksekusi dari klien SQL apa pun menggunakan EXPLAIN PLAN FOR FOR atau Anda dapat menggunakan Oracle SQL Developer untuk tugas ini.
JELASKAN RENCANA UNTUK
Saat menggunakan Oracle, jika Anda menambahkan
EXPLAIN PLAN FOR
perintah ke kueri SQL yang diberikan, database akan menyimpan rencana eksekusi yang diperkirakan di terkaitPLAN_TABLE
:Untuk melihat perkiraan rencana eksekusi, Anda perlu menggunakan
DBMS_XPLAN.DISPLAY
, seperti yang diilustrasikan dalam contoh berikut:Pengembang Oracle SQL
Jika Anda telah menginstal SQL Developer, Anda dapat dengan mudah mendapatkan estimasi rencana eksekusi untuk setiap query SQL tanpa harus menambahkan terlebih dahulu perintah EXPLAIN PLAN FOR:
Rencana eksekusi SQL yang sebenarnya
Paket eksekusi SQL aktual dihasilkan oleh Pengoptimal saat menjalankan kueri SQL. Jadi, tidak seperti perkiraan Rencana Eksekusi, Anda perlu mengeksekusi query SQL untuk mendapatkan rencana eksekusi yang sebenarnya.
Rencana aktual seharusnya tidak berbeda secara signifikan dari yang diperkirakan, selama statistik tabel telah dikumpulkan dengan benar oleh basis data relasional yang mendasarinya.
GATHER_PLAN_STATISTICS petunjuk permintaan
Untuk menginstruksikan Oracle untuk menyimpan rencana eksekusi aktual untuk kueri SQL yang diberikan, Anda dapat menggunakan
GATHER_PLAN_STATISTICS
petunjuk kueri:Untuk memvisualisasikan rencana eksekusi aktual, Anda dapat menggunakan
DBMS_XPLAN.DISPLAY_CURSOR
:Aktifkan STATISTIK di tingkat koneksi DB
Jika Anda ingin mendapatkan paket eksekusi untuk semua pertanyaan yang dihasilkan dalam sesi yang diberikan, Anda dapat mengatur
STATISTICS_LEVEL
konfigurasi sesi untuk SEMUA:Ini akan memiliki efek yang sama dengan mengatur
GATHER_PLAN_STATISTICS
petunjuk kueri pada setiap permintaan eksekusi. Jadi, seperti halnya denganGATHER_PLAN_STATISTICS
petunjuk kueri, Anda dapat menggunakanDBMS_XPLAN.DISPLAY_CURSOR
untuk melihat rencana eksekusi yang sebenarnya.sumber