Saya punya meja besar (~ 50 juta baris) Saya mencoba memasukkan secara massal ke SQL Server dan saya mendapatkan kesalahan:
Tidak dapat mengalokasikan ruang untuk objek 'myDB' dalam database 'I 3 Stroke' karena filegroup 'PRIMARY' penuh. Buat ruang disk dengan menghapus file yang tidak dibutuhkan, menjatuhkan objek di filegroup, menambahkan file tambahan ke filegroup, atau mengatur autogrowth untuk file yang ada di filegroup.
Ada tabel lain dalam database dengan sekitar 25 juta baris. Basis data ini hanya akan digunakan pada satu mesin, dan akan dirancang untuk menambang data yang sudah ada dan dalam keadaan apa pun tidak akan pernah tumbuh melebihi ukuran saat ini.
Untuk situasi seperti ini, apa cara terbaik untuk mengatasi ini sehingga SQL Server tidak mengeluh? Akankah solusi menjadi masalah bahwa DB ini tidak akan terpapar ke banyak pengguna?
sumber
Jawaban:
Ikuti langkah ini:
( Saran: Biarkan setidaknya 20% ruang disk kosong jika Anda menyimpan file basis data pada disk yang sama dengan OS Anda { Sub-Saran : Don lakukan ini! Membangun kembali / memigrasikan data Anda ke disk itu sendiri; Anda mengacaukan diri sendiri pada I / O.} dan meninggalkan setidaknya 8% untuk disk data murni; angka-angka ini adalah perkiraan dari apa yang saya pikirkan persentase saran aktual adalah. )
( Anda mungkin juga ingin mempertimbangkan nilai "Autogrowth" Anda saat berada di sini. )
Anda ingin memberikan alokasi penyimpanan sebanyak mungkin ke basis data Anda. Jika kehabisan ruang Anda akan menerima kesalahan ini tanpa otomatis tumbuh dan jika otomatis tumbuh Anda akan mendapatkan kinerja hit setiap kali harus tumbuh otomatis. Jika Anda hanya kehabisan ruang disk maka itu adalah jawaban Anda dan Anda membutuhkan disk yang lebih besar.
sumber
Express Edition 2014 memiliki batas 10 GB per basis data. Jika tumbuhnya database secara otomatis mencapai titik itu SQL Server melempar pesan kesalahan (tidak jelas?), Tidak menyebutkan batas lisensi. Mungkin ada banyak ruang disk tetapi Anda masih melihat pesan ini.
Ganti rugi jika desain memungkinkan untuk: menggunakan banyak basis data di bawah lisensi ini.
sumber
Database sering kehabisan ruang ketika mereka berada dalam mode pemulihan penuh. Jika Anda tidak melakukan transaksi dan cadangan manual sudah cukup, maka Anda dapat mengubah mode pemulihan menjadi sederhana.
Anda mungkin juga perlu memulihkan ruang dari file log. . . itu bisa dikosongkan tetapi masih menggunakan ruang.
Namun, Anda lebih baik mengajukan pertanyaan ini ke DBA yang mungkin menawarkan lebih banyak solusi.
sumber
Dalam pengalaman saya, pesan ini terjadi ketika file utama (.mdf) tidak memiliki ruang untuk menyimpan metadata dari database. File ini termasuk tabel sistem dan mereka hanya menyimpan data mereka ke dalamnya.
Buat beberapa ruang dalam file dan perintah berfungsi lagi. Itu saja, Selamat menikmati
sumber