Laman

27 September 2014

INFORMASI JALUR AKSES QUERY

Pada Database Oracle, cara melihat jalur akses yang akan digunakan database saat melakukan query dapat dilihat dengan menggunakan perintah explain plan, yang akan memberi informasi tentang rencana eksekusi dari suatu query. Informasi ini disimpan dalam tabel PLAN_TABLE yang terdapat di schema user yang mengeksekusi perintah tersebut.

Sebelum melakukan perintah explain plan, terlebih dahulu buat table PLAN_TABLE dengan menggunakan script utlxplan.sql yang diambil dari \%ORACLE_HOME%\RDBMS\ADMIN.
Setelah itu table PLAN_TABLE dapat digunakan seperti contoh berikut :

SQL> explain plan
Set statement_id=’test1’
Into plan_table for
Select * from karyawan where gaji=2000000;

Dalam PLAN_TABLE rencana eksekusi diatas dikenal dengan nama test1 yang terdefinisi pada kolom statement_id.


Untuk melihat rencana eksekusi dari test1, digunakan perintah SELECT berikut :

SELECT LPAD(’ ’,2*Level)||Operation||’ ’||Options||’ ’||Object_Name Q_Plan
FROM plan_table
WHERE statement_id=’test1’
CONNECT BY PRIOR id=parent_id AND statement_id=’test1’
START WITH id=0 AND statement_id=’test1’;
Contoh hasil dari eksekusi query tersebut :
Q_PLAN
--------------------------------------------------------------------
SELECT STATEMENT
TABLE ACCESS FULL KARYAWAN


Output tersebut dibaca mulai dari yang indent-nya paling dalam yaitu : TABLE ACCESS FULL KARYAWAN. Dikarenakan klausa WHERE melibatkan kolom gaji namun kolom gaji tidak ada index-nya, maka Oracle melakukan full table scan. Setelah seluruh tabel karyawan selesai dibaca, selanjutnya adalah SELECT STATEMENT yang berfungsi untuk menampilkan hasil query.

Tidak ada komentar:

Posting Komentar