Saya memiliki database SQL Server 2008 R2 yang digunakan oleh beberapa program yang dikerahkan.
Pertanyaan: Apakah ada cara mudah untuk menampilkan berapa banyak ruang yang dikonsumsi setiap tabel, untuk semua tabel dalam database, dan membedakan ruang logis dari ruang disk?
Jika saya menggunakan SSMS (Management Studio), properti penyimpanan yang ditunjukkan untuk database bertuliskan 167 MB dengan 3 MB "tersedia" (tentang ukuran yang tepat, tapi saya khawatir tentang 3 MB yang tersedia - apakah ini batas untuk khawatir tentang , dengan asumsi saya tahu saya memiliki cukup ruang disk?)
Saya dapat menelusuri setiap tabel, tapi itu perlu waktu lama untuk dilakukan.
Saya tahu saya bisa menulis pertanyaan saya sendiri dan mencoba-coba, tetapi saya ingin tahu apakah sudah ada cara (bawaan?) Yang mudah untuk melakukan ini.
Sudah dijawab di Stack Overflow:
sumber
Permintaan yang ditautkan ke, dan disalin oleh, @Nelson tidak akurat: ia mengabaikan Tampilan Terindeks, Indeks Teks Lengkap, Indeks XML, dll.
Jika Anda ingin kueri yang akan menyertakan semuanya tanpa mengeksekusi
sp_spaceused
melaluisp_MSForEachTable
, maka saya telah memposting dua variasi dari itu (satu di sini di DBA.StackExchange dan yang lainnya di StackOverflow) jadi saya tidak akan menyalinnya di sini:Per setiap Tabel / Tampilan Berindeks : sp_spaceused - Bagaimana mengukur ukuran dalam GB di semua tabel dalam SQL
Per setiap Indeks: penggunaan ruang di sys.allocation_units dan sp_spaceused
sumber
Hanya untuk bersenang-senang, inilah pertanyaan yang akan menghasilkan data yang sama dengan laporan dalam jawaban nateirvin
Oke, karena saya benar - benar membenci diri sendiri, saya menulis kueri yang akan menghasilkan hasil laporan, memformatnya sebagai tabel HTML, dan mengirimkannya sebagai email. Menyesuaikan warna latar belakang laporan dibiarkan sebagai latihan untuk pembaca.
sumber