Saya telah memantau pertumbuhan file melalui pengumpul data di sql server 2008 r2 selama dua minggu. Basis data tumbuh secara konsisten pada sekitar 35 (MB) / Hari. DB belum mencapai ukuran awal 2 GB.
Pertumbuhan file DB otomatis diatur ke 5MB dan saya ingin mencoba pendekatan yang berbeda, jadi saya mencari saran dan komentar.
Ada tugas penyetelan yang berjalan setiap minggu pada Minggu malam pukul 1:30 pagi. Tugas akan:
- Periksa Integritas Basis Data
- Kecilkan File Log - (Ini tidak masalah karena mode logging Sederhana)
- Kecilkan Database
- Atur Ulang Indeks
- Rebuild Index
- Perbarui Statistik
- Bersihkan Sejarah
Saya ingin menambahkan dua langkah lagi ke rencana tuning mingguan:
- Tumbuhkan file database hingga 500 MB jika ruang yang digunakan mencapai ambang tertentu atau ukuran total.
- Tumbuhkan file log dengan 250 MB (setelah menyusut) jika ruang yang digunakan mencapai batas tertentu dari ukuran total.
Dengan menempatkan beban pertumbuhan dalam jam offline, saya berharap untuk mendapatkan kinerja dengan mengurangi jumlah acara pertumbuhan otomatis selama beban berat.
Saya punya dua pertanyaan yang berkaitan dengan file yang tumbuh secara otomatis.
- Tempat terbaik untuk meletakkan langkah tumbuh file adalah sebelum langkah saat ini atau sesudahnya?
- Jika saya menggunakan
ALTER DATABASE|MODIFY FILE
untuk menumbuhkan file maka bagaimana saya bisa menentukan jikaSpaceUsedInFile >= (TotalFileSpace-@AllowanceThreshold)
?
Jawaban:
Anda harus bertujuan untuk tumbuh secara otomatis sesedikit mungkin. Tujuh kali sehari sangat menyiksa, bahkan dengan inisialisasi file instan.
Jangan lakukan Shrink Database. Pernah. Shrinkfile, mungkin, tetapi hanya setelah kejadian luar biasa. Mengecilkannya hanya untuk tumbuh lagi adalah latihan yang sia-sia dan harus benar-benar disebut auto-fragment.
Jika model pemulihan sederhana, tidak ada cara di bumi Anda harus menumbuhkan file log Anda sebesar 250 GB. Ruang yang digunakan dalam file akan membersihkan dirinya sendiri secara otomatis dari waktu ke waktu, kecuali jika Anda memulai transaksi sebulan yang lalu dan tidak memiliki niat untuk pernah melakukan atau mengembalikannya.
Jadi saran saya adalah:
Tumbuhkan file data secara manual selama periode tenang ke ukuran yang akan mengakomodasi beberapa bulan pertumbuhan. Untuk apa Anda menyimpannya?
Setel peningkatan pertumbuhan-otomatis untuk file data ke sesuatu yang relatif kecil (sehingga tidak mengganggu pengguna saat itu terjadi), dan beri tahu acara ini (Anda dapat menangkapnya di jejak default, misalnya, atau melalui perluasan peristiwa). Ini dapat memberi tahu Anda bahwa Anda mencapai titik tinggi yang Anda perkirakan dan sekarang saatnya untuk tumbuh secara manual lagi. Pada titik ini Anda akan ingin menyimpan manual ini jika Anda ingin menambahkan file / filegroup baru pada drive yang berbeda untuk mengakomodasi ruang, karena pada akhirnya Anda akan mengisi drive saat ini.
Tumbuhkan otomatis file log menjadi, katakanlah, dua kali lipat terbesar yang pernah ada. Seharusnya tidak tumbuh lebih lanjut secara otomatis kecuali ada transaksi abnormal yang menahannya. Anda harus memantau acara ini juga, sehingga Anda tahu tentang mereka.
sumber
Pertumbuhan otomatis adalah sesuatu yang harus Anda hindari jika memungkinkan. Masalahnya adalah Anda tidak memiliki kendali atas kapan pertumbuhan dapat terjadi dan sistem Anda dapat mengambil pukulan serius saat itu terjadi.
Tetapkan ukuran file Anda menjadi sesuatu yang masuk akal selama sebulan atau lebih dan pantau laju pertumbuhan Anda dari sana, tentukan berapa banyak ruang yang Anda perkirakan untuk jumlah waktu X dan setel ukuran Anda ke margin kesalahan.
Saya telah menyiapkan pekerjaan pemantauan sederhana yang akan mengingatkan saya ketika ukuran file mencapai maksimum yang telah ditentukan sebelum pertumbuhan otomatis. Anda dapat menggunakan sesuatu seperti ini:
Tentu saja ini bisa dijadwalkan sebagai pekerjaan.
sumber