10 teknik menulis Query yang perlu diperhatikan untuk mempercepat SQL Report dalam proses menarik data

Tujuan dari dibuat dan dikembangkannya suatu sistem adalah fitur laporannya (Reporting Services), dimana fitur tersebut dapat memudahkan User dalam berbagai aktifitas, seperti Monitoring, Calculating, Decision Making dan sebagainya.

Laporan secara definisi adalah kumpulan informasi, yang berbeda pada laporan dalam sebuah aplikasi adalah metode penarikan datanya, yakni menggunakan SQL (Structured Query Language).

Pada pengembangannya, SQL Developer punya banyak cara untuk membentuk suatu laporan, tapi yang seringkali jadi permasalahan, adalah kecepatan laporan tersebut diproses.

Source: google
perusahaan Make to Order pengguna QAD, perusahaan Make to Order pengguna SAP, perusahaan Metal Baja Besi Almunium pengguna INFOR, perusahaan Metal Baja Besi Almunium pengguna Microsoft Dynamic, perusahaan Metal Baja Besi Almunium pengguna Oracle, perusahaan Metal Baja Besi Almunium pengguna QAD, perusahaan Metal Baja Besi Almunium pengguna SAP, perusahaan Plastik & Karet pengguna INFOR, perusahaan Plastik & Karet pengguna Microsoft Dynamic, perusahaan Plastik & Karet pengguna Oracle, perusahaan Plastik & Karet pengguna QAD, perusahaan Plastik & Karet pengguna SAP, perusahaan Project base Manufacturing pengguna INFOR, perusahaan Project base Manufacturing pengguna Microsoft Dynamic, perusahaan Project base Manufacturing pengguna Oracle, perusahaan Project base Manufacturing pengguna QAD, perusahaan Project base Manufacturing pengguna SAP, QAD Partner EPC Engineering, Procurement and construction, QAD Partner ERP Indonesia, QAD Partner Telecommunication Telekomunikasi, QAD Partner automotive, QAD Partner distribusi elektronik, QAD Partner distribusi medical devices, QAD Partner Elektronik, QAD Partner Industri Makanan Minuman, QAD Partner Kimia obat Farmasi, QAD Partner Logam permesinan Mechinery, QAD Partner Make to Order, QAD Partner Metal Baja Besi Almunium, QAD Partner Plastik & Karet, QAD Partner Project base Manufacturing, SAP Partner EPC Engineering, Procurement and construction, SAP Partner ERP Indonesia, SAP Partner Telecommunication Telekomunikasi, SAP Partner automotive, SAP Partner distribusi elektronik, SAP Partner distribusi medical devices, SAP Partner Elektronik, SAP Partner Industri Makanan Minuman, SAP Partner Kimia obat Farmasi, SAP Partner Logam permesinan Mechinery, SAP Partner Make to Order, SAP Partner Metal Baja Besi Almunium, SAP Partner Plastik & Karet, SAP Partner Project base Manufacturing, software EPC Engineering, Procurement and construction bisnis, software ERP Indonesia bisnis, software ERP Indonesia bisnis, software Automotive bisnis, software distribusi elektronik bisnis, software distribusi medical devices bisnis, software Elektronik bisnis, software Industri Makanan Minuman bisnis, software Kimia obat Farmasi bisnis, software Logam permesinan Mechinery bisnis, software Make to Order bisnis, software Metal Baja Besi Almunium bisnis, software Plastik & Karet bisnis, software produksi EPC Engineering, Procurement and construction, software produksi ERP Indonesia, software produksi Telecommunication Telekomunikasi, software produksi automotive, software produksi distribusi elektronik

Kecepatan menjadi acuan yang sangat penting karena berdampak pada efisiensi penggunaan laporan tersebut.

Maka dari itu, kami akan membagikan 10 Teknik menulis Query yang perlu diperhatikan saat proses pengembangan laporan (SQL Report), agar laporan dapat terproses dengan cepat, kredibel dan dapat digunakan dengan efisien.

 

  1. Hindari Nested View: Menjalankan suatu Query didalam Query lain merupakan cara yang kurang efektif, Hal ini menyebabkan terlalu banyaknya data yang dihasilkan permasing – masing barisnya.
  2. Join data satu persatu: Urutkan Table yang hendak dihubungkan, Join data satu persatu dan hindari menghubungkan banyak Table sekaligus.
  3. Gunakan Temp Table: Temp Table atau Temporary Table sangat berguna dibeberapa kondisi, terutama saat kita perlu menarik data dari Table dengan data besar dan harus dihubungan dengan Table yang datanya relatif sedikit, memasukan data yang dibutuhkan ke Temp Table terlebih dahulu akan mempercepat proses secara siginifikan.
  4. Stop gunakan Query yang sama berulang – ulang: Dalam bekerja tim, seringkali Technical diminta untuk melanjutkan pengembangan Report dari Technical lain, karena kurangnya komunikasi, seringkali terdapat data yang dipanggil berulang – ulang, pangkas data yang tidak terpakai dan rapihkan Query sesuai kebutuhan.
  5. Hindari Cursor: Sebisa mungkin, kurangi penggunaan Cursor pada Query karena prosesnya yang berat, apabila Cursor terpaksa digunakan, lakukan kombinasi dengan Temp Table untuk mendapatkan hasil yang lebih efisien.
  6. Pilah kolom yang kamu butuhkan:
    • Saat menggunakan SELECT * pada Query, data yang kita tarik biasanya jauh lebih banyak daripada data yang kita butuhkan.
    • Sebelum melakukan SELECT, pastikan terlebih dahulu data apa saja yang diperlukan, baik dari segi kolom maupun baris.
  7. Jangan gunakan fitur Count ke semua kolom saat mengecek keberadaan data pada suatu Table: Melakukan SELECT COUNT(*) merupakan hal yang tidak perlu dan memakan waktu lama, gunakan IF EXISTS agar SQL Server dapat langsung menentukan Action yang cocok dan pengembalian data yang lebih cepat.
  8. Pisahkan Table bertransaksi besar dengan Table yang bertransaksi sedikit: Apabila proses dijalankan secara bersamaan, waktu yang digunakan oleh Table dengan transaksi besar pastinya cukup lama dan seringkali menunda proses yang diperlukan oleh Table dengan transaksi yang lebih sedikit, pisahkan prosesnya agar masing – masing Table dapat di Load lebih cepat.
  9. Manfaatkan Stored Procedure semaksimal mungkin: Stored Procedure memiliki banyak kelebihan, mulai dari lebih mudahnya proses Trace, eksekusi berulang, Calls yang lebih singkat dan sebagainya.
  10. Hindari Distinct: Saat kita menggunakan Distinct, SQL Server akan melakukan proses lebih yang akan memperlambat jalannya Query lain

 

Kontributor: Indra Arga Muria

 

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *