Friday, 29 November 2019

Optimasi Kueri & SQL Tuning : Bagian 1


Tulisan kali ini akan membahas mengenai “Optimasi Kueri dan SQL Tuning

Optimasi Kueri
          Apa itu “Optimasi Kueri”? Optimasi Kueri adalah proses penganalisaan kueri untuk menentukan sumber-sumber yang digunakan oleh kueri tersebut, serta menganalisa kemungkinan penggunaan dari sumber tersebut dapat diminimalkan tanpa merubah output. Maka, optimasi kueri adalah suatu cara untuk meningkatkan strategi evaluasi suatu kueri untuk membuatnya menjadi lebih efektif. Tujuan optimasi kueri adalah menemukan akses termurah untuk meminimumkan total waktu pada saat proses query. Untuk mencapainya, diperlukan optimizer untuk melakukan analisa kueri dan untuk melakukan pencarian jalan akses.
                  Ada beberapa cara untuk meningkatkan efektifitas dari sebuah kueri, diantaranya :
A.    Menghindari mismatch tipe data untuk pengindeksian kolom
Hanya menggunakan kutip tunggal pada tipe data yang sesuai. (Contoh : INT tidak memerlukan pemberian tanda kutip ‘’)
B.    Menghindari fungsi pada kolom yang di-index
Fungsi di kolom ter-index akan membatalkan penciptaan index pada kolom tersebut
C.    Menentukan kodisi pada WHERE bukan pada HAVING
Dengan urutan perintah yang tepat, banyak waktu bisa dipangkas. (Misalnya perintah mencari dahulu sebelum perintah pengelompokkan)
D.    Penggunaan join untuk menggatin inner-query
Dengan tidak menulis hasil inner-query pada baris hasil query table utama akan memangkas waktu proses.
E.    Menggunakan table paling kecil pada urutan terkahir pada query join
Pengurutan yang tepat akan memangkas waktu menjadi lebih cepat.
F.     Mengganti NOT IN dengan NOT EXISTS
Seperti menghindari subquery. Dibanding mencari satu-persatu, lebih cepat mencari apa yang memang tidak ada.
G.    Menggunakan FORALL menggantikan FOR
Fitur yang sangat berguna, untuk memasukkan sekaligus dibandingkan dengan pemrosesan satu-persatu.
H.    Penggunaan BULK COLLECT
Suatu fitur untuk menghindari loop dalam pengumpulan data dari table, akan sangat berguna pengolahan data berat.

SQL Tuning
            Kemudian apakah yang dimaksud “SQL Tuning”? SQL Tuning merupakan suatu usaha untuk mendiagnosa dan memperbaiki SQL yang gagal dalam mencapai suatu tingkat performa. SQL Tuning adalah proses iterative untuk meningkatkan kinerja SQL sehingga berhasil mencapai suatu tingkat performa yang diharapkan. Tujuan dari SQL tuning adalah untuk memperbaiki kinerja SQL ketika gagal dalam mencapai kualitas standarnya, biasanya ada 2 cara umum untuk memperbaiki masalah ini, yaitu dengan Mengurangi User Response Time atau Meningkatkan Throughput.
            Dalam pelaksanaannya, proses SQL Tuning memerlukan sekumpulan keahlian dan pengetahuan dalam bidang yang terkait, diantaranya :
            Pengalaman dengan arsitektur basis data
            Pemahamam tentang SQL dan PL/SQL
            Pengalaman dengan tools terkait (SQL tools)
            Setelah dirasa memiliki keahlian dan peralatan yang dibutuhkan, maka saatnya untuk melakukan peningkatan kinerja. Untuk itu ada 2 fase umum peningkatan : Fase Desain dan Fase Pelaksanaan.
            Fase Desain meliputi Data Modelling dan Writing. Data Modelling diperlukan untuk mewakili bentuk dari data fisik yang ingin dipalikasikan secara digital. Kemudian Writing adalah proses penulisannya, yang mana sangat menunut kefisienan. Untuk harus selalu diperhatikan bahwa dalam penulisan memiliki manajemen koneksi basis data yang baik, manajemen penggunaan sumber daya yang handal, dan penggunaan variable yang efektif.
            Kemudian Fase Pelaksanaan memerlukan tahapan Test Environemnt dan Rollout. Test Environment bertujuan untuk menguji fungsionalitas dan kestabilan dari pengembangan yang telah dilaksanakan. Sedangankan Rollout atau peluncuran adalah tahap pengaplikasian dari pengembangan yang telah dibuat, umumnya memiliki 2 pendekatan : Big Bang Approach yang langsung memigrasi seluruh sistem dan Trickle Approach yang melakukan migrasi sistem secara perlahan.

No comments:

Post a Comment