Jumat, 29 November 2019

Optimasi Query

1. Menurut anda pentingkan melakukan  optimasi query dalam memanajemen  database?
        Penting, untuk menciptakan indeks - indeks yang baik dan benar.

2. Buat ringkasan dari materi SQL Tuning atau  Optimasi Queri.
 Optimasi Queri adalah suatu strategi penggunaan sumber sumber jalur query secara lebih efektif dan efisien dengan tujuan untuk seminimal mungkin total waktu yang digunakan ketika proses query berlangsung.
Faktor - faktor yang berpengaruh terhadap optimisasi  kecepatan akses data:
1. Optimasi perintah SQL.
     Dalam melakukan optimasi SQL, kita harus mempertimbangkan desain logik dan struktur penyimpanannya. Inti dari optimasi query adalah meminimalkan jalur untuk penemuan data dalam sistem penyimpanan.
2. Informasi jalur akses query.
    Pada database Oracle, informasi untuk melihat jalur akses yang digunakan untuk eksekusi database saat melakukan query dapat dilihat dengan menggunakan perintah explain plain.Informasi ini disimpan dalam tabel PLAN_TABLE yang terdapat di schema user yang mengeksekusi perintah tersebut.
3. Faktor Lain yang Berpengaruh Terhadap Kecepatan Akses Data
Faktor yang berpengaruh terhadap kecepatan akses data tidak hanya pada optimasi perintah SQL,tapi terhadap hal-hal lain yang berpengaruh.Faktor lain yang berpengaruh terhadap kecepatan akses data yaitu optimasi aplikasi dan penggunaan cluster dan index.
Diantaranya adalah optimasi aplikasi dan penggunaan cluster index.

    3. Buat kesimpulan dari materi SQL Tuning atau   Optimasi Queri
       Kesimpulannya, optimasi Queri sangat penting. Dan ada beberapa faktor yang mempengaruhi kecepatan akses data yaitu optimasi perintah SQL, informasi jalur akses query dan faktor lain yang berpengaruh terhadap kecepatan akses data.

OPTIMASI QUERI DAN SQL TUNING


OPTIMASI QUERI DAN SQL TUNING

 Optimasi Query adalah suatu proses untuk menganalisa query untuk menentukan sumber-sumber apa saja yang digunakan oleh query tersebut dan apakah penggunaan dari sumber tersebut dapat dikurangi tanpa merubah output.

Beberapa teknik optimasi query database yang dapat diterapkan untuk mengembangkan sistem yang lebih baik adalah sebagai berikut:
  1. Hindari mismatch tipe data untuk pengindeksan kolom
Kebanyakan orang menggunakan tanda kutip tunggal (dalam kondisi filter) terlepas dari tipe data yang mereka query. Hal Ini membuat oracle melakukan internal typecast ke tipe data yang dibutuhkan.
  1. Hindari fungsi pada kolom yang diindeks
Biasanya, kita melakukan identifikasi kolom yang paling sering di query kemudian dibuat index pada kolom tersebut. Tapi query kita menggunakan fungsi pada kolom yang terindeks. Hal ini akhirnya akan membatalkan tujuan menciptakan indeks pada kolom tersebut.
3.       Menentukan kondisi pada WHERE bukan pada HAVING
Ini bukanlah sebuah error. Jika filter dilakukan sebelum pengelompokan, maka semua data yang tidak perlu akan dikelompokan dan akhirnya data yang dibutuhkan akan difilter. Menerapkan filter sebelum pengelompokan akan menghindari sortasi dan pengelompokkan yang tidak perlu.
  1. Penggunaan join untuk mengganti inner query
Hal ini sebenarnya dianggap sebagai praktek yang buruk pada penulisan SQL, menulis hasil inner query pada tiap-tiap baris hasil query tabel utama.
  1. Menentukan tabel dengan ukuran paling kecil, pada urutan terakhir pada query join.
    Seperti yang kita lihat, menggunakan join menghasilkan hasil yang lebih baik daripada inner query. Kita harus mengurutkan tabel sedemikian rupa sehingga tabel terkecil akan ditentukan pada akhir di SQL, sehingga waktu oracle untuk membandingkan baris akan berkurang.

  1. Mengganti NOT IN dengan NOT EXISTS
Hal ini sama halnya dengan menghindari subquery.


SQL TUNING
Bagian terpenting pada tuning performansi database system adalah Tuning SQL statements. Adapun pada tuning SQL terdapat tiga langkah dasar :
1.                   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.
2.                   Verifikasi bahwa execution plans yang diproduksi oleh query optimizer untuk statement-statement ini berjalan dengan baik.
3.                   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

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)