Kami membuat database di MSSQL 2008 R2 Standard di mana kami akan menyimpan sejumlah besar catatan. Kami memperkirakan 200 juta catatan dalam satu tabel setiap tahun dan kami pada dasarnya MEMASUKI dengan sangat sedikit UPDATE atau DELETE pada data. Ini adalah sistem arsip data tempat kami menyisipkan catatan bersejarah setiap hari. Kami akan menghasilkan berbagai jenis laporan pada catatan bersejarah ini berdasarkan permintaan pengguna sehingga kami memiliki beberapa kekhawatiran dan memerlukan masukan dan saran teknis.
- Apa cara terbaik untuk mengelola tabel dan basis data arsip semacam ini?
Jawaban:
Inilah pendapat saya:
sumber
200 juta baris per tahun tidak terlalu besar (kecuali jika barisnya luar biasa besar). Anda perlu memperhatikan prinsip-prinsip desain database yang sehat (normalisasi) dan memanfaatkan fitur-fitur standar seperti pengindeksan dan partisi. Jelas perangkat keras yang tepat juga penting.
Tidak ada cukup informasi di sini untuk memberikan saran khusus. Pertimbangkan untuk mempekerjakan seseorang jika Anda merasa perlu bantuan dengan desain dan implementasi terperinci.
sumber
Pastikan bahwa desain Anda memungkinkan penyisipan Anda selalu ada di akhir tabel. Petunjuk Clustered Petunjuk.
Hanya memiliki sangat sedikit indeks tidak tercakup yang mendukung laporan yang perlu Anda lakukan untuk mempertahankannya seminimal mungkin. Apakah laporan ini diprioritaskan? jika ya maka pertimbangkan pertanyaan ini: Apakah boleh jika laporan membutuhkan waktu 2 jam untuk menghasilkan? (tanpa indeks) atau 1mins (dengan indeks). Mungkin tidak apa-apa untuk membiarkan laporan membutuhkan waktu 2 jam untuk memiliki satu indeks lebih sedikit? atau mungkin tidak? Jika laporan tidak dibuat dengan baik itu adalah pertanyaan lain maka karena pengguna tidak suka menunggu dan Anda mungkin perlu menerapkan lebih banyak indeks untuk mendukung laporan Anda.
Dari bagaimana Anda menggambarkan basis data ini, sepertinya Anda mengharapkan banyak baris dan data akan bertambah dan bertambah banyak. Apakah Anda mempertimbangkan cara membuat cadangan sistem ini? Saya melihat sebagian besar data akan sama dan hanya menambahkan baru? Saya tidak tahu kebutuhan bisnis dari sistem ini, tetapi bagi saya sepertinya dalam satu atau dua tahun ini mungkin merupakan database dengan ukuran yang cukup besar dan Anda mungkin mengalami kesulitan membuat banyak cadangan lengkap. Pertimbangkan untuk membuat cadangan penuh dengan log berkala (mingguan?) Dan diferensial (harian?) Dan transaksi (setiap jam?) Tentu saja seperti yang saya katakan saya tidak tahu persyaratan bisnis, mungkin Anda tidak memerlukan semua cadangan sepanjang waktu? Ukuran dapat menjadi masalah dalam sistem arsip.
sumber