Optimasi Query (Posttest Vclass1)
POSTTEST OPTIMASI QUERY (SBD VCLASS 1)
OPTIMASI QUERY
1. Pengenalan Optimasi Query
Query adalah sebuah ekspresi bahasa yang menggambarkan data yang akan didapatkan kembali dari sebuah database.
Sedangkan Optimasi Querry sendiri adalah suatu proses untuk menganalisa query untuk menentukan sumber-sumber apa saja yang diunakan oleh query tersebut dan apakah penggunaan dari sumber tersebut dapat dikurangi tanpa merubah output. Atau bisa juga dikatakan ahwa optimasi query adalah sebuah prosedur untuk meningkatkan strategi evaluasi dari suatu query untuk membuat evaluasi tersebut menjadi lebih efektif.
Optimasi query mencakup beberapa teknik seperti transformasi query ke dalam bentuk logika yang sama, memilih jalan akses yang optimal dan mengoptmimumkan penyimpanan data. Ada tiga aspek dasar yang ditetapkan dan mempengaruhi optimasi query:
a. Search space
Sekumpulan rencana-rencana akses yang sama secara logika yang dapat digunakan untuk mengevaluasi sebuah query. Semua rencana dalam search space query mengembalikan hasil yang sama.
b. Cost model
Sebuah harga untuk tiap rencana dalam search space. Harga dari rencana tersebut adalah sebuah perkiraan dari sumber-sumber yang digunakan pada saat rencana dijalankan. Dimana harga yang leih rendah merupakan yang terbaik dari rencana.
c. Search straregy
Perincian dari rencana-rencana dalam search space yang akan diperiksa. Apabila search space kecil maka strategi yang dapat diteruskan adalah menghitung dan mengevaluasi setiap rencana.
2. Tujuan Optimasi Query
Prinsip ekonomi yang diperlukan sebuah query adalah mengoptimasikan prosedur-prosedur, mencoba memaksimumkan output dari sumber, ataupun untuk meminimumkan penggunaan sumber untuk memberikan output. Tujuan dari optimasi query berbeda untuk setiap sistem. Ada yang menggunakan optimasi query untuk meminimumkan waktu proses sedangkan pada situasi lain bisa juga optimasi query untuk waktu respon, meminimumkan I/O dan meminimumkan penggunaan memori.
SQL TUNING
1. Pengertian 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 :
- 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
2. Tujuan
Tujuan dari tuning sistem adalah untuk mengurangi waktu respon sistem terhadap end user, atau untuk mengurangi resource yang digunakan untuk memproses pekerjaan yang sama. Kita dapat memenuhi kedua tujuan ini dalam beberapa cara:
- Mengurangi Beban Kerja (Reduce the Workload)
- Menyeimbangkan Beban Kerja (Balance the Workload)
- Memparalelkan Beban Kerja (Parallelize the Workload)
a. Mengurangi Beban Kerja (Reduce the Workload)
SQL Tuning secara umum melibatkan pencarian cara yang lebih efisien untuk memproses beban kerja yang sama. SQL tuning memungkinkan untuk mengubah rencana eksekusi dari suatu statement tanpa mengubah fungsionalitas untuk mengurangi pemakaian resource.Dua contoh bagaimana penggunaan resource dapat dikurangi:
1.) Jika suatu query yang biasa dieksekusi perlu untuk mengakses suatu persentase kecil dari data dalam tabel, maka query tersebut dapat dieksekusi dengan lebih efisien dengan menggunakan indeks. Dengan membuat indeks, kita dapat mengurangi jumlah pemakaian resource.
2.) Jika seorang user mencari dua puluh baris pertama dari 10000 baris yang diberikan oleh perintah pengurutan yang spesifik, dan jika query (dan perintah pengurutan) dapat dipenuhi oleh indeks, maka user tidak perlu untuk mengakses dan mengurutkan 10000 baris untuk melihat dua puluh baris.
Sistem cenderung memiliki penggunaan penuh pada siang hari ketika user yang sebenarnya terhubung ke sistem dan penggunaan yang sedikit di malam hari. Jika noncritical report dan batch job dapat dijadwalkan untuk berjalan pada malam hari dan penggunaan sistem pada siang hari dikurangi, maka hal tersebut dapat membebaskan resource agar dapat digunakan pada program-program yang lebih penting pada siang hari.
c. Memparalelkan Beban Kerja (Parallelize the Workload)
Query-query yang mengakses sejumlah besar data (typical data warehouse queries) sering dapat diparalelkan. Hal ini sangat berguna untuk mengurangi waktu respon dalam data warehouse yang rendah konkurensinya. Akan tetapi, untuk lingkungan OLTP, yang cenderung tingggi konkurensinya, hal ini dapat merugikan user-user lain dengan meningkatkan penggunaan resource secara keseluruhan pada program.
Additional:
“Penting kah melakukan optimasi query pada manajemen database?”
Penting. Karena Optimasi query memiliki keuntungan diantaranya, transformasi query ke dalam bentuk logika yang sama, memilih jalan akses yang optimal dan mengoptmimumkan penyimpanan data. Sehingga bisa memaksimumkan output dari sumber, ataupun untuk meminimumkan penggunaan sumber untuk memberikan output.
Kesimpulan akhir
Baik optimasi query maupun sql tuning keduanya memiliki prinsip yang sama, dimana dalam pengerjaan akan mempermudah dan mempersingkat beban. Serta memiliki prinsip ekonomi dimana memaksimumkan output dari sumber, ataupun untuk meminimumkan penggunaan sumber untuk memberikan output.
Komentar
Posting Komentar