Langsung ke konten utama

Optimasi Query dan SQL Tuning

Optimasi Query

Image result for optimasi query mysql
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. Atau bisa juga dikatakan bahwa 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 mengoptimumkan penyimpanan data.
Tujuan dari optimasi 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.


Database Tuning adalah sejumlah aktifitas yang dilakukan untuk memperbaiki atau meningkatkan kinerja atau performance sebuah database. Aktifitas tuning ini meliputi banyak aspek dari software hingga hardware, antara lain I/O Tuning, DBMS Tuning, Query Tuning, dan Database Maintenance. (Menurut materi yang disediakan)

Ada 8 tips Optimasi Query

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.
2.      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.
4.      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.
5.      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.
6.      Mengganti NOT IN dengan NOT EXISTS
Hal ini sama halnya dengan menghindari subquery.
7.      Menggunkan FORALL sebagai pengganti FOR
Ini adalah salah satu fitur yang berguna, yang tersedia di oracle untuk memasukan bulk record.
8.      Penggunaan BULK COLLECT
BULK COLLECT adalah suatu fitur yang disediakan oleh Oracle untuk menghindari penggunaan loop dalam pengumpulan data dari table. Untuk aplikasi pengolahan data berat, BULK COLLECT akan sangat berguna. Sebagai contoh, kita perlu memilih 1000 baris dari tabel dan memproses baris dan masukkan ke tabel lain, maka kita dapat menggunakan BULK COLLECT.


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.
SQL Tuning adalah upaya untuk mendiagnosis dan memperbaiki pernyataan SQL yang gagal memenuhi standar kinerja.
Atau dalam pengertian saya adalah, upaya yang dilakukan untuk memperbaiki kode-kode SQL yang tidak memenuhi standar kode tersebut. Yang artinya kita akan membuat statement SQL kita menjadi lebih efektif dan efisien, serta tidak bertele-tele.

Sumber : 
https://www.i-3.co.id/2017/05/03/8-tips-optimasi-query-pada-oracle-database/

Komentar

Postingan populer dari blog ini

VISI & MISI Perusahaan Apple

Apple Inc. Apple Inc.  (sebelumnya bernama  Apple Computer, Inc. ) adalah sebuah perusahaan multinasional yang berpusat di Silicon Valley, Cupertino, California dan bergerak dalam bidang perancangan, pengembangan, dan penjualan barang-barang yang meliputi elektronik konsumen, perangkat lunak komputer, serta komputer pribadi. Apple Inc. didirikan pada tanggal 1 April, 1976 dan diinkonporasikan menjadi Apple Computer, Inc. pada tanggal 3 Januari, 1977. Pada 9 Januari, 2007, kata “Computer” dihapus untuk mencerminkan fokus Apple terhadap bidang elektronik konsumen pascapeluncuran iPhone. Apple dikenal akan jajaran produk perangkat lunak diantaranya sistem operasi OS X dan iOS, pemutar musik iTunes, serta peramban web Safari, dan perangkat keras diantaranya komputer meja iMac, komputer jinjing Macbook Pro, pemutar lagu iPod, serta telepon genggam iPhone. Perusahaan ini bergerak dalam bidang perancangan, pengembangan, dan penjualan barang-barang yang meliputi elektr...

Nilai-Nilai Perusahaan Apple

Nilai-Nilai Perusahaan Apple Etika Bisnis Perusahaan Apple Dalam dinamika bisnisnya Apple telah melakukan pelanggaran etika bisnis ketika berhubungan dengan Foxcon dalam beberapa prinsip, yaitu :       1. Apple, menghadapi kritik besar tentang perlakuan yang tidak adil dari para pekerja dalam rantai pasokan. Yang secara teknis bekerja untuk sebuah perusahaan yang sama sekali berbeda, di negara yang berbeda dengan latar belakang sosial dan ekonomi sangat berbeda. 2. Foxcon menghadapi kontroversi di masa lalu atas masalah bunuh diri.  Fenomena ini  menunjukkan masalah kesejahteraan  yang benar-benar jauh lebih rendah dari rata-rata 3. Pada awal 2011  tercatat  bahwa Cina telah memiliki biaya tenaga kerja tertinggi ketiga dalam perekonomian Asia berkembang.  Namun Foxcon tidak memberikan upah yang sesuai dengan regulasi  4. Etika kerja, kondisi kerja, dan situasi ekonomi  di  Cina  adalah  berbeda secar...

Model EERD

MODEL EER (ENHANCED ENTITY RELATIONSHIP)  EERD merupakan Model entity Relationship yang ditambah kemampuan semantiknya dengan beberapa konsep yang lebih kompleks. Konsep-Konsep Model EER *    Sub-Kelas (Subclass) Subset dari suatu entitas yang dikelompokkan dalam pengertian tertentu yang perlu disajikan secara eksplisit. Subclass merepresentasikan entity yang sama dengan superclass, namun memiliki peran spesifik tertentu.   Contoh : Entitas PEGAWAI mempunyai beberapa subclass seperti SEKRETARIS, TEKNISI, AHLI (Gambar 1) Entity dalam subclass merupakan anggota superclass, namun tidak sebaliknya *   Super-Kelas (Superclass) Entitas yang merupakan induk dari subclass-subclassnya. Contoh : Subclass SEKRETARIS, TEKNISI, SALES mempunyai superclass PEGAWAI (Gambar. 1) *    Spesialisasi (Spesialiazation) Proses pemecahan entitas menjadi subclass-subclass beserta atribut-atributnya. Terdapat beberapa jenis spesialisasi seperti...