Saya bingung. AFAIK SQL Server 2005 Express memiliki batas ukuran data basis data 4GB . Namun saya mendapat hasil berikut dari sp_spaceused
:
- Bagaimana saya bisa memeriksa apakah DB saya mencapai batas ukuran?
- Apakah ruang yang tidak terisi
space left
sampai saya mencapai batas? - Berapa banyak ruang yang tersisa?
- Apakah termasuk
index_size
dalam batas?
Jawaban:
Berikut ini adalah skrip yang baik yang saya dapatkan tanpa malu-malu dari sini :
Ini bagus karena ini akan memberi Anda ruang kosong di setiap file DB (Anda mungkin memiliki beberapa file dan mungkin seseorang mengaturnya untuk meletakkan beberapa objek di masing-masing) serta ukuran gratis.
Misalnya, Anda memiliki file data 4GB yang memiliki ruang kosong 3GB. Mungkin Anda memiliki 1 MDF tanpa banyak data tetapi NDF dengan banyak data. Kueri ini akan memberi tahu Anda ukuran bebas di setiap file dan DB apa yang dialokasikan untuk file tersebut. Ingatlah untuk menambahkan semua 'SPACE_USED_MB' untuk setiap DB untuk mendapatkan ukuran total.
Semoga berhasil!
Sunting: Menghapus perintah yang tidak didukung dan buggy yang saya pikir saya bisa lolos dari posting di sini untuk permintaan ini. :(
sumber
sp_msforeachdb
!?!?sysaltfiles
(ini meniadakan kebutuhan untuk masuk ke setiap database sama sekali).Ukuran basis data adalah ukuran file. Lihatlah ukuran sebenarnya dari file data (log transaksi tidak masuk hitungan). Ya, indeks dihitung. Jika Anda kehabisan ruang, pertimbangkan upgrade ke SQL 2012 Express karena meningkatkan batas ukuran hingga 10 Gigs.
sumber
Ketika sp_spaceused menunjukkan ukuran database_ sekitar 25 GB di set hasil pertama Anda, itu termasuk file data / indeks, dan log transaksi. Hanya data dan indeks aktual yang dihitung terhadap batas SQL Server Express, sehingga Anda memiliki sekitar 3,3 GB data (seperti pada hasil kedua Anda) dan sisanya 22 GB akan menjadi log transaksi. Jika Anda menjalankan "sp_helpdb" ini menunjukkan gambar asli, karena melaporkan penggunaan data dan penggunaan log transaksi pada dua baris terpisah.
sumber