Seberapa Pentingkah Performance dan Tuning Pada SQL Database?

Seiring meningkatnya data yang tersimpan baik pada server lokal maupun cloud, harus tetap memikirkan kestabilan performance agar produktivitas tetap terjaga. Artikel ini akan membahas pentingnya performance dan tuning khususnya pada SQL Database.

Disusun oleh: Clarissa E. Amos Pah

Apa itu performance and tuning?

Menurut Rich Schiesser dalam bukunya yang berjudul IT System Mangement, Performance and Tuning adalah sebuah metodologi untuk memaksimalkan throughput dan meminimalkan response time untuk proses-proses seperti transaksi online, aktivitas-aktivitas internet dan batch job. Dengan kata lain, Performance and Tuning adalah sebuah upaya untuk memaksimalkan infrastruktur baik software ataupun hardware yang ada agar dapat berfungsi dengan optimal. Performance and Tuning sebenarnya memiliki dua tugas yang dijalankan berdampingan, performance bertujuan untuk memonitor kinerja dari infrastruktur. Hasil monitor ini akan ditindaklanjut dengan tuning sebagai upaya untuk mengoptimalkan kinerja.

Beberapa area infrastruktur yang dapat diukur kinerjanya untuk dilakukan tuning adalah:

  1. Server
  2. Disk Storage
  3. Databases
  4. Networks
  5. Desktop Computers

Gambar 0‑1 – Area Performance dan Tuning

  •  seberapa penting performance and tuning pada database?

Mengapa database? Database pada perusahaan akan terus meningkat seiring waktu dan dapat bertumbuh drastis hingga ratusan kolom dan jutaan baris data. Tentunya hal ini dapat sangat mempengaruhi kinerja dari response time.


Beberapa masalah umum yang dihadapi adalah:

Menurut Paessler, database menjadi salah satu isu yang paling mempengaruhi performance sebuah system.

Gambar 2 – Isu Performance Aplikasi

  1. Saturation: Tidak ada space
  2. Slowness: Menurunnya kecepatan query

Gambar 3 – Masalah Umum Pada Database

  • Corruption: Internal errors.

Selain untuk mempertahankan kinerja manajemen database saat workload terus meningkat, beberapa alasan database administrator harus melakukan performance tuning adalah:

  • Scalability Analysis

Performance tuning membantu database administrator menganalisis headroom yang tersedia pada hardware yang dimiliki.

  • Capacity Planning

Performance tuning berperan dalam melakukan tolak ukur throughput maksimum yang dicapai oleh database.

  • Performance Degradation

Tanpa melakukan performance tuning, kinerja database dan aplikasi yang sering digunakan akan menurun.

  • Under-Utilized Hardware

Saat melakukan pengaturan memory pada server database, kita mungkin hanya menggunakan sedikit bagian dari memory pada server sehingga penggunaan hardware tidak maksimal dan dapat menurunkan kinerja.

  • Sub-Optimal Configuration

Tanpa performance tuning, konfigurasi database dapat mengirimkan throughput lebih rendah dari target yang telah ditentukan.

  • Underperforming Queries

Proses eksekusi permintaan (insert & update) yang dilakukan pengguna dapat berjalan dengan sangat lambat sehingga menurunkan kinerja.

Pahlawan dibalik performance and tuning pada database.

Seorang Database Administrator (DBA) dapat diibaratkan seperti teknisi mobil balap yang dapat membangun, mengatur dan mengoptimalkan kendaraan agar dapat melaju secepat mungkin. DBA bertanggung jawab untuk melakukan tuning pada SQL query sehingga memiliki kecepatan extra. Tuning Database merupakan sebuah proses yang membutuhkan pengetahuan dan keahlian yang mendalam dimulai dengan memahami rencana eksekusi, bahkan seringkali meng-update atau menuliskan kembali SQL dengan kualitas lebih baik. Hal ini biasanya membutuhkan waktu yang cukup lama karena SQL statements yang banyak dan harus dapat dianalisa, mana statement yang membutuhkan tuning.

Seiring berkembangnya data dan teknologi yang semakin canggih, Performance Tuning pada database pun terus dikembangkan agar dapat memudahkan para professional database untuk lebih cepat mengidentifikasi bottleneck, menargetkan operasi yang tidak sesuai dengan melihat hasil dari query execution plan dan menghilangkan dugaan-dugaan yang tidak pasti.

Best Practice SQL Performance and Tuning

SQL performance and tuning didefinisikan sebagai sebuah proses untuk mengembangkan eksekusi query dalam database dengan tujuan mendapatkan respon yang sesuai dalam waktu secepat mungkin.

Agar proses performance dan tuning dapat sukses dijalankan, berikut beberapa langkah-langkah yang dapat dilakukan:

  1. Mengelompokan isu pada database.

Ketika kita ingin membangun sebuah proses performance tuning, mungkin kita menemukan kesulitan dari mana kita harus mulai membangun. Oleh karena itu pengelompokan isu dapat menjadi langkah awal yang dapat dilakukan. Isu-isu tersebut antara lain:

  • Resources (physical atau virtual)
  • Indexing/Data Model
  • Struktur query
  • Concurrency (blocking – manajemen multi threads saat melakukan request pada database yang sama)

Setelah itu dilanjutkan dengan penelusuran lebih lanjut untuk masing-masing kelompok isu. Misalnya category resource dapat mengukur kinerja memory, disk i/o (volume dan latency), CPU dan jaringan.

  1. Berfokus pada Correlated Metrics.

Pada tahap ini, kita akan mencatat performance berdasarkan metrics sebagai berikut:

  • Wait States (waktu yang dibutuhkan database untuk mengeksekusi query)
  • Pemanfaatan CPU dan signal waits
  • Response Time
  • Latency disk I/O
  • Throughput transaksi
  • Bandwidth dan usage jaringan (penting untuk mendukung database di cloud)

Saat ini sudah banyak tools yang tersedia yang menampilkan dashboard berdasarkan metrics di atas, sehingga yang perlu dilakukan adalah menganalisa hasil pencatatan performance dari setiap poin metric.

  1. Mengukur hasil dari waktu ke waktu.

Dengan mencatat performance dari waktu ke waktu akan memberikan gambaran besar mengenai performance database kita. Ini dapat membantu kita untuk menarik kesimpulan apakah performance yang sekarang lebih baik dari performance sebelumnya. Misalnya kita ingin membandingkan performance di akhir bulan dan di awal bulan.

  1. Database Maintenance

Beberapa area yang harus dimaintain secara rutin:

  • Backup: Pada area ini, dilakukan recovery plan dan sesuaikan backup dengan plan yang telah dibuat.
  • Index Maintenance: Index harus sering dilakukan pengecekan, bila perlu setiap hari.
  • Update Statistics: Statistik idealnya perlu diperiksa setiap hari. Pemeriksaan ini bergantung pada sistem, lamanya waktu untuk memperbarui statistik, jumlah churn dalam objek database (tabel dan index), dan query yang dikompilasi ulang pada saat dijalankan berikutnya.
  • Corruption Check: Melakukan pengecekan corruption rutin bulanan.
  • Capture configuration details: Langkah ini dilakukan untuk menjaga MTTI rendah dengan mendokumentasi setiap konfigurasi yang dilakukan sedetail mungkin.

Kesimpulan

Sebagian besar organisasi menganggap, solusi tercepat dan terbaik untuk mengatasi masalah performance adalah dengan menambahkan hardware, misalnya ketika system berjalan melambat, maka yang dilakukan adalah meng-upgrade prosesor, menambahkan memory, membeli tambahan cache dan tambahan volume disk. Solusi ini mungkin terlihat cepat dan mudah tetapi di sisi lain membutuhkan cost dan jika dipikirkan kembali, masalah yang sama cepat atau lambat akan terulang kembali karena berkembangnya aktivitas computer dan penyimpanan yang terbatas. Penambahan hardware memang dapat menyelesaikan masalah dengan cepat namun tidak menyelesaikan masalah performance yang sebenarnya, sehingga metode performance and tuning hadir sebagai solusi performance pada infrastruktur yang ada.

Referensi

Performance Tuning – Focus Datatech Systems. (2019). Retrieved from http://www.focus-datatech.com/performance-tuning/

Griffin, J. (2019). Maximizing Database Performance – MySQL Tuning Best Practices – DNSstuff. Retrieved from https://www.dnsstuff.com/sql-performance-tuning-tips-and-checklist

SQL and Database Performance Tuning Guide and Checklist: Expert Tips – DNSstuff. (2019). Retrieved from https://www.dnsstuff.com/sql-and-database-performance-tuning-guide-and-checklist-expert-tips#one

i3 Blog: PostgreSQL Performance Tuning untuk Tingkatkan Kinerja. (2019). Retrieved from https://www.i-3.co.id/2019/02/06/postgresql-performance-tuning-untuk-tingkatkan-kinerja-manajemen-database/

Schiesser, R. (2010). IT systems management.

 

Antoni Wibowo