A.
Optimasi Pada Perintah SQL
Dalam
mendesain suatu database diperlukan SQL untuk mengoptimasi perintah, karena
hanya desain logik saja yang diperhatikan. Untuk menampilkan hasil query
dibutuhkan pencarian yang melibatkan struktur fisik penyimpanan data. Sedangkan
untuk meminimalisasi “jalur” pencarian
dalam menemukan data yang disimpan di lokasi fisik diperlukan suatu optimasi
query.
Pada
saat query dijalankan, index pada database mencari data dan menemukan niali
ROWID( yang membantu menemukan lokasi data secara fisik di disk). Index disini
apabila digunakan secara tepat maka akan meningkatkan kecepatan akses
data.
B.
Perencanaan Eksekusi
Untuk
melihat jalur akses
yang akan digunakan
database saat melakukan query yaitu
:
-
Pada
Database Oracle, dapat
dilihat dengan menggunakan perintah
explain plan, yang
akan memberi informasi
tentang rencana eksekusi
dari suatu query,
yang kemudian disimpan dalam tabel
PLAN_TABLE yang terdapat di
schema user yang mengeksekusi perintah
tersebut.
Cara melakukannya yaitu sebagai
berikut :
1.
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. 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=’test 1’ CONNECT BY
PRIOR id=parent_id AND statement_id’test 1’ START WITH id=0 AND statement_id=’test
1’;
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.
C. Faktor Lain Yang Berpengaruh Terhadap
Kecepatan Akses Data
Faktor
lain yang berpengaruh terhadap kecepatan akses data yaitum: optimasi aplikasi
dan penggunaan cluster
dan index. Hal
yang akan dibahas dalam
optimasi query berikut
ini tidak melibatkan
penggunaan komponen yang
ada dalam Arsitektur database
engine, misal pada
database Oracle kecepatan
akses data dipengaruhi oleh
penyesuaian pada shared pool, buffer cache, redo log buffer dan sistem operasi
yang digunakan.
Optimasi Aplikasi
Suatu
pembuatan aplikasi yang perlu diperhatikan yaitu : dalam hal penggunaan obyek harus
efisien dengan kecepatan akses seperti index / cluster dan mendesain database
serapi mungkin dengan melakukan normalisasi data secara tepat. Untuk mendesain
agar lebih tepat biasana diperlukan juga denormalisasi.
Cluster dan index
Cluster
adalah suatu segment yang menyimpan data dari
tabel yang berbeda dalam
suatu struktur fisik
disk yang berdekatan. Konfigurasi ini
bermanfaat untuk akses data dari beberapa
tabel yang sering
di-query. Penggunaan cluster secara
tepat dilaksanakan setelah menganalisa
tabel-tabel mana saja yang sering
di-query secara bersamaan
menggunaan perintah SQL join. Jika
aplikasi sering melakukan query
dengan menggunakan suatu kolom
yang berada pada klausa
WHERE, maka harus
digunakan index yang
melibatkan kolom tersebut. Penggunaan index yang tepat bergantung pada jenis
nilai yang terdapat dalam kolom
yang akan diindex. Dalam RDBMS
Oracle, index B-Tree
digunakan untuk kolom yang
mengandung nilai yang cukup bervariasi, sedangkan untuk nilai yang tidak memiliki
variasi cukup banyak, lebih baik menggunakan index bitmap.
Latihan Soal :
1. Apa latar belakang
dari diperlukannya optimalisasi kecepatan akses data?
Karena
apabila suatu data tersimpan dalam database lama kelamaan akan semakin banyak
dan tentunya ukuran dan volumenya juga semakin meningkat. ketika tidak adanya
suatu optimalisasi kecepatan akses data maka proses kerjanya (akses data) akan
semakin lambat.
2. Optimasi query
dalam hubungannya dengan desain database melibatkan dua hal yaitu desain logik dan lokasi
struktur fisik penyimpanan data.
3. Proses pencarian
data yang telah
di indeks akan lebih
cepat jika data
yang dicari
terletak pada disk.
4. Bagaimana cara
melihat jalur akses yang akan digunakan
database saat melakukan
query ? Tunjukkan tahap-tahap yang digunakan untuk
melakukan hal tersebut !
-
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.
-
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=’test 1’ CONNECT BY PRIOR id=parent_id AND statement_id’test
1’ START WITH id=0 AND statement_id=’test 1’;
5. Sebutkan factor-faktor
lain yang berpengaruh terhadap
kecepatan akses data selain
optimasi pada
perintah SQL ! Selain optimasi
perintah SQL, faktor
lain yang berpengaruh
terhadap kecepatan akses data
adalah optimasi aplikasi dan penggunaan cluster dan index.
6. Beberapa database
engine melibatkan komponen
pada arsitekturnya untuk
disesuaikan agar
akses data lebih cepat dan efisien, berikan contohnya ! semisal pada database Oracle kecepatan akses data dipengaruhi oleh
beberapa komponen arsitektur
pembentuknya seperti shared pool, buffer cache, dan redo log
buffer.
Tidak ada komentar:
Posting Komentar