Saya tidak pernah bekerja dengan partisi SQL Server tapi saya saat ini dihadapkan dengan mendesain database yang mungkin membutuhkan volume. Sistem ini untuk kupon. Kupon akan diterbitkan secara berkala, biasanya setiap enam minggu meskipun akan ada juga penerbitan ad-hoc - misalnya untuk acara khusus. Ada 15 juta pelanggan dan untuk setiap acara penerbitan, setiap pelanggan akan menerima 6 jenis kupon yang berbeda, memberikan total 90 juta contoh kupon. Kami perlu melacak data penukaran instance kupon dan mempertahankannya selama 6 bulan, meskipun biasanya kupon hanya berlaku selama enam minggu. Setiap permintaan penukaran kupon yang tidak valid tidak akan mencapai basis data karena akan divalidasi oleh POS hingga.
Selama periode enam bulan kita perlu menyimpan hingga 360 juta baris di tabel Kupon Instance dan hingga 72 juta (dengan asumsi tingkat penukaran maks 20%) di tabel Penebusan. Saya merasa bahwa angka-angka ini terlalu besar untuk satu partisi?
Pertanyaan saya adalah - apa yang harus digunakan sebagai kunci partisi? Satu kandidat yang jelas akan dengan acara penerbitan, memberikan sekitar 6 partisi. Tetapi kemudian saya berpikir bahwa mungkin bahkan itu akan memberikan ukuran partisi yang terlalu besar untuk memungkinkan kinerja yang optimal? Apakah mungkin untuk mempartisi dengan dua kunci misalnya dengan acara penerbitan + digit terakhir dari id pelanggan? Jadi logikanya adalah:
If issuance event = 1 and last digit of customer id < 5 then
Store in partition 1
Else if issuance event = 1 and last digit of customer id >4 then
Store in partition 2
Else if issuance event =2 and last digit of customer id <5 then
Store in partition 3
Else if issuance event =2 and last digit of customer id >4 then
Store in partition 4
Etc...
Juga, saya tidak yakin dengan spesifikasi server database yang akan kami butuhkan. Apakah 16gb dan 8CPU cukup? Db harus dapat mengembalikan hasil dari tabel instance kupon, dikunci pada nilai barcode numerik dalam waktu kurang dari setengah detik. Permintaan transaksi yang diharapkan untuk divalidasi (pilih) dan tebus (masukkan) diperkirakan akan memuncak pada sekitar 3.500 per menit.
SQL Server 2008r2 64bit db server akan ditetapkan sebagai VM dari host yang sangat kuat dengan akses ke SAN kinerja tinggi dan kapasitas besar.
Saya akan sangat berterima kasih atas saran dari mereka yang telah menggunakan solusi SQL Server untuk mengelola volume yang sama.
Salam
Rampok.