Langkah untuk menjaga performa Database.
Masalah klasik yang sering dihadapi oleh sebuah aplikasi dengan skala enterprise adalah masalah performance dari aplikasi yang biasanya perlahan tetapi pasti semakin lama semakin lambat sehingga perlu tuning. Dilihat dari persentase pengaruhnya terhadap performace aplikasi dapat kita lihat seperti tampak pada tabel berikut ini:
App Design |
DB Design | SQL | Hardware tuning | Perf Monitoring workload changes |
25% | 25% | 20% | 10% | 20% |
Jika kita lihat Desain aplikasi dan Desain database merupakan hal yang paling berpengaruh pada performace aplikasi secara keseluruhan, baru diikuti dengan database server (SQL) dan Workload Changes baru yang terakhir adalah Hardware tuning.
Peranan Application design dan DB design akan sangat berpengaruh pada scalability dan reability dari aplikasi yang dibangun. Sehingga umur dari aplikasi akan semakin lama digunakan tanpa perlu melakukan perubahan yang radikal di sisi desain.
Dengan menggunakan Performace Monitoring kita bisa melakukan deteksi terhadap semakin lambatnya sistem aplikasi kita. sehingga kita bisa melakukan improvement di sisi aplikasi maupun di sisi database. Apa yang dilakukan performance monitoring adalah dengan melakukan monitoring terhadap sistem dan aplikasi yang ada termasuk IO, Memory dan Software yang ada di server.
Permasalahan umum yang terjadi yang menyebabkan aplikasi menjadi semakin lambat di sisi SQL (TSQL atau SP) adalah kesalahan dalam hal
- Cache management,
- Query Plan yang digunakan,
- Recompilation issue,
- Transaction Management / concurrency
- Resource Utilization
Dari semua hal di atas tidak bisa memperbaiki kesalahan yang terjadi yang disebabkan Bad Design sehingga design yang Baik bukan hanya dibutuhkan di sisi aplikasi tetapi perlu juga di sisi database.
Dalam setiap masalah performance berikut ini adalah step yang selalu dilakukan oleh IT Professional sebagai user application:
- Tuning Database, dengan harapan dengan database bisa di-tuning maka aplikasi bisa mengalami perbaikan dalam hal performace aplikasi. Jika tidak berhasil maka:
- kemungkinan kekurangan resource di sisi mesin server sehingga dicoba untuk melakukan upgrade server database menjadi mesin server yang high end untuk bisa meningkatkan performa aplikasi, tapi jika masih belum berhasil maka:
- kurangi fiture aplikasi sehingga transaksi yang berat tidak dijalankan melalui aplikasi, kalo bisa jadi batch prosess saja. namun jika kebutuhan business tidak bisa kompromi dengan ini maka:
- Operasi besar harus dilakukan yaitu amputasi atau REWRITE CODE
Kita bisa lihat betapa mahalnya biaya aplikasi yang dikembangkan dengan Bad design dan tidak ada capacity planning yang baik di sisi Aplikasi dan Database.
Oleh sebab itu hendaknya kita mulai memikirkan bagaimana membuat aplikasi yang berumur panjang dengan memiliki kemampuan yang stabil dari sisi performa. Desain aplikasi yang baik bukan hanya memberikan kualitas aplikasi yang baik tetapi umur aplikasi yang panjang.