1. Optimasi Perintah SQL
Jika kita tidak mengerti dengan benar perintah-perintah database ini dapat membuat menurun nya performa, muncul pesan kesalahan dan laporan yang tidak sesuai semua dapat diminimalisasi dengan penggunaan perintah sql yang benar. Nah dalam Optimasi perintah SQL ini kita melakukan struktur query dengan melakukan perintah yang efektif untuk mencari data pada lokasi fisik database. Kenapa lokasi fisik menjadi begitu penting karena untuk menampilkan hasil query dibutuhkan pencarian yang melibatkan struktur fisik penyimpanan data. Intinya optimasi query itu meminimalkan jalur utuk mencari data yang tersimpan pada lokasi fisik.
contoh dalam penamaan index berikut:
CREATE INDEX idx_kota_prop_kodepos
ON karyawan(kota, propinsi, kode_pos)
TABLESPACE INDX;
dalam penaman index tersebut digunakan 3 kolom yang mengurutkan kolom menurut kota, provinsi dan kode pos
kemudian user melakukan query seperti berikut:
SELECT * FROM karyawan WHERE propinsi=’Jawa Barat’;
pada kasus tersebut indeks tidak digunakan karena kolom pertama pada index yaitu kota tidak digunakan pada clausa WHERE. Jika user banyak menggunakan kolom propinsi pada kolom pertama pada pengindeks kan sebaiknya diganti dengan provinsi
2. Informasi Jalur akses
Pada database oracle untuk melihat jalur akses pada database dapat digunakan perintah explain plan, yang akan memberi informasi rencana eksekusi suatu query yang tersimpan pada PLAN_TABLE yang terdapat schema user yang mengeksekusi perintah tersebut.
Jadi sebelum melakukan perintah explain table terlebih dahulu kita buat PLAN_TABLE nya dengan script utlxplan.sql yang diambil dari \%ORACLE_HOME%\RDBMS\ADMIN.
setelah itu PLAN_TABLE dapat digunakan seperti contoh berikut:
SQL> explain plan
Set statement_id=’coba1’
Into plan_table for
Select * from karyawan where gaji=2000000;
Dalam PLAN_TABLE rencana eksekusi diatas dikenal dengan nama coba1 yang
terdefinisi pada kolom statement_id.
Untuk melihat rencana eksekusi dari coba1, digunakan perintah SELECT berikut :
SELECT LPAD(’ ’,2*Level)||Operation||’ ’||Options||’ ’||Object_Name Q_Plan
FROM plan_table
WHERE statement_id=’coba1’
CONNECT BY PRIOR id=parent_id AND statement_id=’coba1’
START WITH id=0 AND statement_id=’coba1’;
Hasil eksekusi query nya adalah:
Q_PLAN
--------------------------------------------------------------------
SELECT STATEMENT
TABLE ACCESS FULL KARYAWAN
output nya dibaca dari indent yang paling dalam yaitu:TABLE ACCESS FULL KARYAWAN. karena table karyawan melibat kan kolom gaji yang tidak ada indexnya. Maka oracle melakukan full table scan. setelah seluruh tabel gaji selesai dibaca hasil query ditampilkan dengan fungsi SELECT STATEMENT
Tidak ada komentar:
Posting Komentar