Monday, March 2, 2009

Comparing database engine

karena ini blog orang IT, supaya sedikit terasa atmosfer IT nya, jadi ini g post hasil comparing database engine yang baru dilakukan gak lama ini.
Test yang dilakukan sederhana aja, cuma melakukan insert 1 jt record data yang hanya berisikan nomor 1-1jt ke dalam satu table satu field. Semua diusahakan sama, dengan menggunakan tipe data money/currency, dan menjadi primary key (kecuali untuk firefox dan postgre, yang harus ditambahkan satu field lagi karena tidak mau berjalan jika satu table cuma berisi satu field currency yang dijadikan primary key). 
Product microsoft rupanya memang tetap lebih cepat dibandingkan firebird dan postgre yang gratisan (jadi memang ada bedanya antara yang bayar dan yang gratisan).
Tetapi ada 2 hal yang cukup mengejutkan, dimana microsoft access rupanya berjalan jauh lebih cepat dibandingkan yang lain (3x lebih cepat daripada sql server 2000 yang merupakan tercepat di antara yang lain), dan satu lagi adalah bahwa performance sql server 2000 lebih baik dibandingkan sql server 2005.
Dalam hal yang pertama, kemungkinan access bisa jauh lebih cepat adalah karena memang access di design untuk single computer (jadi mungkin akan lebih lambat jika digunakan untuk multi user, tetapi harus dibuktikan lewat test lain dahulu yang tidak dilakukan disini).
Dalam hal yang kedua, sql server 2005 lebih lambat daripada sql server 2000, adalah mungkin disebabkan karena sql server 2005 memakai platform .net yang memang membutuhkan resource lebih besar.
Memang performa sql server 2005 jauh lebih lambat dibandingkan sql server 2000 (ini terasa sekali karena g adalah pengguna aktif sql server 2000, dan sangat terasa ketika menggunakan sql server 2005). Mungkin ada penambahan function2 yang penting di sql server 2005 yang berguna bagi pemakai yang menggunakan fungsinya sampai sedalam-dalamnya. 
Tetapi bagi kita yang hanya menggunakan sql server sebagai database engine biasa saja, kelebihan sql server 2005 sangat tidak terasa, dan malah terasa menyusahkan karena sangat lambat dibandingkan sql server 2000, dan beberapa fungsi yang bisa dilakukan dengan mudah di sql server 2000 tidak bisa/sulit di sql server 2005 (contohnya untuk export/import data yang sangat mudah di 2000, tetapi sampai sekarang selalu error jika dijalankan di tempat klien, padahal installation berhasil sukses tanpa error). 
Satu-satunya kelebihan sql server 2005 yang terasa adalah untuk versi freenya mampu menampung data hingga 4GB dibandingkan hanya 2GB pada sql 2000, dan sql management studio yang sudah langsung ada bahkan untuk versi free/express untuk sql server 2005.

Yah, semoga saja product2 baru dari microsoft tidak selalu menurun performa-nya. Hal ini sudah sangat terasa di windows vista yang oleh banyak orang sudah dianggap produk gagal(kesulitan utama adalah pada user access control-nya dan kurangnya dukungan driver dari para vendor) tetapi tetap dipaksa untuk dipakai oleh microsoft yang sudah tidak mau mengeluarkan license untuk windows xp lagi.

Berikut adalah hasil compare untuk masing2 database engine (tentunya ini tidak benar2 menunjukkan perbedaan kemampuan masing2 database engine karena hanya test yang sangat sederhana, tetapi setidaknya bisa memberikan gambaran kecepatan masing2 database engine pada saat inserting) :

- Mssql 2000 => 13 menit 25 detik
- Mssql 2005 => 16 menit 40 detik
- Firebird => 44 menit 1 detik
- PostgreSQL => 34 menit 14 detik
- Access => 4 menit 58 detik