Sabtu, 21 September 2013

Perencanan 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