Apabila pangkalan data jadi perlahan, sebagai DBA, ada beberapa langkah yang boleh kita ambil untuk selesaikan masalah tersebut. Ini adalah langkah-langkah yang boleh diikuti untuk mencari punca dan menyelesaikan masalah kelambatan pangkalan data.

1. Periksa Penggunaan Sumber Sistem
- CPU: Kalau CPU server tinggi sangat penggunaan, mungkin ada proses dalam pangkalan data yang makan banyak kuasa. Kena semak guna alat monitoring.
- Memori (RAM): Kalau RAM penuh, sistem akan jadi perlahan sebab dia akan guna disk sebagai memory. Kena pastikan memori cukup.
- Ruang Disk: Kalau ruang cakera penuh, pangkalan data akan jadi perlahan, terutamanya untuk log dan fail sementara. Kena pastikan ada cukup ruang untuk operasi.
2. Periksa Query Perlahan
- Tengok Query yang Berjalan: Guna alat seperti
SHOW PROCESSLIST(untuk MySQL) atausp_who2(untuk SQL Server) untuk tengok query mana yang ambil masa lama. - Gunakan EXPLAIN: Dengan
EXPLAIN, kita boleh nampak macam mana query dilaksanakan. Kalau query buat full table scan (baca semua data), ini boleh jadi punca kelewatan. - Periksa Indeks: Kadang-kadang kalau tiada indeks pada kolum yang digunakan dalam query, pangkalan data akan jadi perlahan. Cek indeks dan pastikan ianya betul.
3. Semak Log Pangkalan Data
- Log Kesalahan: Tengok log kesalahan untuk tahu kalau ada masalah lain yang tak nampak jelas. Kadang-kadang ada amaran yang beri petunjuk masalah.
- Log Query Perlahan: Kalau MySQL atau DB yang lain ada fungsi log query perlahan, aktifkan. Ini boleh bantu kita nampak query mana yang terlalu lama.
4. Periksa Penguncian (Locking)
- Lock Pada Jadual: Kadang-kadang kalau ada lock pada jadual atau baris, proses lain tak boleh jalan, jadi menyebabkan kelambatan. Semak dengan
SHOW ENGINE INNODB STATUS(untuk MySQL) untuk lihat masalah lock. - Deadlock: Deadlock berlaku bila dua proses saling menunggu antara satu sama lain. Ini perlu diselesaikan cepat-cepat sebab ia akan hentikan transaksi.
5. Tuning Konfigurasi Pangkalan Data
- Konfigurasi Pangkalan Data: Setkan parameter seperti
innodb_buffer_pool_sizeuntuk MySQL, atau parameter lain untuk DBMS yang kita guna. Kalau parameter tak sesuai dengan saiz dan beban sistem, prestasi akan terganggu. - Indeks: Pastikan indeks yang sesuai ada pada jadual yang digunakan dalam query. Tanpa indeks yang betul, pencarian data jadi lambat.
6. Periksa Isu Rangkaian
- Latency Rangkaian: Kalau pangkalan data diakses dari server atau aplikasi yang jauh, pastikan rangkaian stabil dan tak ada isu sambungan.
- Bandwidth: Kalau bandwidth rendah, pangkalan data akan jadi lambat bila banyak data dihantar. Periksa kelajuan rangkaian.
7. Periksa Struktur Pangkalan Data
- Data Terlalu Banyak: Kalau pangkalan data besar sangat, boleh jadi lebih perlahan. Mungkin perlu buat pembahagian data (partitioning) atau arkibkan data lama supaya pangkalan data tak terlalu penuh.
- Optimumkan Struktur Jadual: Pastikan struktur jadual tak terlalu rumit dan ada data yang tak diperlukan.
8. Periksa Transaksi
- Transaksi Terbuka Lama: Kalau transaksi dibiarkan terbuka lama, dia akan menghalang proses lain. Pastikan semua transaksi ditutup dengan betul.
- Transaksi Kecil: Kadang-kadang transaksi kecil yang berulang-ulang boleh melambatkan DB. Cuba gabungkan transaksi jadi satu yang lebih besar untuk tingkatkan prestasi.
9. Periksa Replikasi (Jika Ada)
- Replikasi Perlahan: Kalau DB kita ada replikasi, pastikan replika disegerakkan dengan baik. Kalau ada lag (tertinggal), ia boleh menyebabkan kelambatan.
- Replikasi Tak Selari: Pastikan data dihantar antara master dan replika dengan cepat tanpa ada delay.
10. Periksa Sumber Luar
- API atau Sistem Luar: Kadang-kadang pangkalan data berhubung dengan sistem lain atau API. Kalau API atau sistem luar ni lambat, ia boleh mempengaruhi prestasi DB kita.
11. Gunakan Alat Pemantauan
- Guna alat pemantauan prestasi seperti Prometheus, Grafana, New Relic, atau SolarWinds untuk memantau prestasi pangkalan data dan kenal pasti masalah dengan lebih cepat.
Ringkasan Langkah:
- Semak penggunaan CPU, memori, dan cakera.
- Periksa query yang sedang dijalankan, dan gunakan
EXPLAINuntuk analisis lebih lanjut. - Semak log pangkalan data untuk kesalahan dan query perlahan.
- Periksa penguncian dan deadlock yang menghalang proses lain.
- Tuning konfigurasi DB untuk optimalkan prestasi.
- Pastikan rangkaian stabil dan cukup lebar jalur.
- Periksa struktur dan saiz pangkalan data.
- Pastikan transaksi ditutup dengan betul.
- Kalau guna replikasi, pastikan ia disegerakkan dengan baik.
- Pantau sistem secara keseluruhan menggunakan alat pemantauan.
Dengan mengikuti langkah-langkah ni, DBA boleh kenal pasti punca masalah kelambatan pangkalan data dan ambil tindakan untuk memperbaikinya.