Optimasi Query
Optimisasi query mencoba memberikan suatu pemecahan
untuk menangani masalah tersebut dengan cara menggabungkan sejumlah besar
teknik-teknik dan strategi, yang meliputi transformasi-transformasi logika dari
query-query untuk mengoptimisasi jalan akses dan penyimpanan data pada sistem
file. Setelah ditransformasikan, sebuah query harus dipetakan ke dalam sebuah
urut-urutan operasi untuk menghasilkan data-data yang diminta.
Tahapan-tahapan proses dari sebuah query di dalam sebuah sistem
database ditunjukkan pada gambar 2.1. Berikut penjelasan dari masing-masing
tahapan :
·
Scanner melakukan identifikasi
(pengenalan) token-token seperti SQL keywords, attribute, dan relation name.
Proses ini disebut dengan scanning.
·
Query Parser mengecek kevalidan
query dan kemudian menterjemahkannya ke dalam sebuah bentuk internal yaitu
ekspresi relasi aljabar atau parse tree.
Proses ini disebut dengan parsing.
·
Query Optimizer memeriksa semua
ekspresi-ekspresi aljabar yang sama untuk query yang diberikan dan memilih
salah satu dari ekspresi tersebut yang terbaik yang memiliki perkiraan
termurah. Dengan kata lain, tugas dari query optimizer adalah menghasilkan
sebuah rencana eksekusi. Proses ini disebut dengan optimisasi query.
·
Code Generator atau Interpreter
mentransformasikan rencana akses yang dihasilkan oleh optimizer ke dalam
kode-kode. Setelah itu, kode-kode tersebut dikirimkan ke dalam query processor untuk dijalankan.
·
Query Processor melakukan
eksekusi query untuk mendapatkan hasil query yang diinginkan.
Bagian yang diarsir pada gambar 2.1 adalah merupakan komponen utama
yang berperan penting dalam proses optimisasi query yang menjadi topik utama
dari seluruh pembahasan ini. Alasan
dibahasnya tahapan proses query pada gambar 2.1 adalah semata mata untuk
memberikan gambaran yang jelas tentang bagaimana pada umumnya sebuah query
diproses di dalam sebuah Database Manajemen Sistem (DBMS).
Prinsip ekonomi yang diperlukan untuk sebuah query adalah
mengoptimisasi prosedur-prosedur, mencoba untuk memaksimumkan output dari
sejumlah sumber-sumber yang diberikan ataupun untuk meminimumkan penggunaan
sumber untuk memberikan output.
Tujuan dari optimisasi query adalah berbeda-beda untuk setiap sistem. Ada yang menggunakan optimisasi query untuk meminimumkan waktu proses sedangkan pada situasi lain bisa juga optimisasi query diperlukan untuk waktu respon, meminimumkan I/O dan meminimumkan penggunaan memory. Tetapi pada dasarnya, tujuan dari optimisasi query adalah menemukan jalan akses yang termurah untuk meminimumkan total waktu pada saat proses sebuah query. Untuk mencapai tujuan tersebut, maka diperlukan optimizer untuk melakukan analisa query dan untuk melakukan pencarian jalan akses.
Tujuan dari optimisasi query adalah berbeda-beda untuk setiap sistem. Ada yang menggunakan optimisasi query untuk meminimumkan waktu proses sedangkan pada situasi lain bisa juga optimisasi query diperlukan untuk waktu respon, meminimumkan I/O dan meminimumkan penggunaan memory. Tetapi pada dasarnya, tujuan dari optimisasi query adalah menemukan jalan akses yang termurah untuk meminimumkan total waktu pada saat proses sebuah query. Untuk mencapai tujuan tersebut, maka diperlukan optimizer untuk melakukan analisa query dan untuk melakukan pencarian jalan akses.
Optimisasi query merupakan bagian dasar dari sebuah sistem database
dan juga merupakan suatu proses untuk menghasilkan rencana akses yang efisien
dari sebuah query di dalam sebuah database. Secara tidak langsung, sebuah
rencana akses merupakan sebuah strategi yang nantinya akan dijalankan untuk
sebuah query, untuk mendapatkan kembali operasi-operasi yang apabila dijalankan
akan menghasilkan database record query. Ada tiga aspek dasar yang ditetapkan
dan mempengaruhi optimisasi query, yaitu : search space, cost model dan search
strategy.
SQL Tuning
Menurut Immanuel Chan (2008, p11-1), SQL Tuning adalah
sebuah proses optimasi dengan cara mengubah perintah-perintah SQL
serta menentukan teknik indexing agar SQL tersebut bekerja secara optimal.
Bagian terpenting pada tuning performansi database system adalah Tuning SQL statements. Adapun pada tuning SQL terdapat tiga langkah dasar :
Bagian terpenting pada tuning performansi database system adalah Tuning SQL statements. Adapun pada tuning SQL terdapat tiga langkah dasar :
- Identifikasi SQL statements yang memegang andil besar pada sharing workload aplikasi dan system resources, dengan me-review history SQL execution yang telah lampau yang tersedia pada system.
- Verifikasi bahwa execution plans yang diproduksi oleh query optimizer untuk statement-statement ini berjalan dengan baik.
- Mengimplementasi corrective actions untuk men-generate execution plans pada peformansi SQL statement yang buruk sehingga menjadi lebih baik.
Ketiga langkah di atas diulang sampai performansi
system mencapai tingkat kepuasan atau tidak ada lagi statement yang dapat
di-tuning
Langkah pertama yang harus dilakukan untuk melakukan
SQLTuning adalah melakukan identifikasi terhadap High-LoadSQL Statements. High-LoadSQLStatements
adalah query yang membebani server sehingga menyebabkan kinerja sebuah basis
data menjadi lambat dan menghabiskan penggunaan sumber daya yang besar dari
sistem. Sekalipun optimasi telah dilakukan pada basis data, namun penggunaan
SQL yang tidak optimal akan menyebabkan performa basis data menurun.
Melakukan identifikasi query ini merupakan aktivitas yang
penting dari sebuah proses SQLTuning, yang telah diotomatisasi dengan fitur
ADDM (Automatic Database Diagnostic Monitor) pada Enterprise Manager Oracle
10g.
Melakukan identifikasi High-Load SQL Statements merupakan sebuah aktivitas yang penting dari sebuah proses SQL tuning. Oracle 10 g telah melakukan otomatisasi hal ini dengan fitur ADDM (AutomaticDatabase Diagnostic Monitor) atau dengan menggunakan Entreprise Manager untuk mencari High-Load SQL Statements tersebut. Ada 2 cara untuk melakukan identifikasi High-LoadSQL Statement, yaitu dengan menggunakan ADDM dan Top SQL.
Melakukan identifikasi High-Load SQL Statements merupakan sebuah aktivitas yang penting dari sebuah proses SQL tuning. Oracle 10 g telah melakukan otomatisasi hal ini dengan fitur ADDM (AutomaticDatabase Diagnostic Monitor) atau dengan menggunakan Entreprise Manager untuk mencari High-Load SQL Statements tersebut. Ada 2 cara untuk melakukan identifikasi High-LoadSQL Statement, yaitu dengan menggunakan ADDM dan Top SQL.
http://dinus.ac.id/repository/docs/ajar/c-3-4-Reff_Pemrosesan-Query_Optimasi-Query.pdf
http://dianayun30207013.blogspot.com/2011/01/tuning.html
http://dianayun30207013.blogspot.com/2011/01/tuning.html

Comments
Post a Comment