Sabtu, 21 September 2013

Perencanaan Eksekusi (Lanjutan Optimasi Query)

Pada database oracle, informasi ini dapat dilihat dengan menggunakan perintah explain plan, yang akan memberi informasi tentang rencana eksekusi suatu query. Informasi ini disimpan dalam tabel PLAN_TABLE yang terdapat pada schema user yang mengeksekusi perintah tersebut.


Cara melakukannya yaitu sebagai berikut :



1.    Sebelum melakukan perintah explain plan, terlebih dahulu Buat  table PLAN_TABLE  dengan  menggunakan  script  utlxplan.sql  yang  diambil  dari  \%ORACLE_HOME%\RDBMS\ADMIN.



2.    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.



3. Untuk   melihat  jalur  akses  yang  akan  digunakan  database  saat melakukan  query  yaitu : Save.

Untuk melihat rencana dari test 1, digunakan perintah SELECT sebagai 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 lain dari hasil 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