如何在SQL Server中將某資料庫的table使用磁碟空間列出 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
在 MS SQL SERVER 中, 雖然 enterprise 的介面可以利用工作清單將所有的 table 空間使用狀況列出, 但仍然不是很方便, 若能將這些資料導入 temp table, 並進一步排序, 或找出特定某 table 的使用狀況, 若是要一筆一筆利用 sp_spaceused table_name 的方式, 相當不方便, 若能一次帶出的話, 相信能更快找出使用空間大的 table. 使用方式, 利用 sp_spaceused, sp_MSforeachTable 兩個 stored procedure 即可, script 如下,
use database_name create table #used_table ( name nvarchar(255), rows int, reserved nvarchar(255), data nvarchar(255), index_size nvarchar(255), unused nvarchar(255) ) EXEC sp_MSforeachtable @command1 = "insert into #used_table exec sp_spaceused '?'" select * from #used_table create table #used_table2 ( name nvarchar(255), rows int, reserved_KB int, data_KB int, index_size_KB int, unsed_KB int ) insert into #used_table2 select name, rows, replace(reserved, ' KB', ''), replace(data, ' KB', ''), replace(index_size, ' KB', ''), replace(unused, ' KB', '') from #used_table select * from #used_table2 drop table #used_table drop table #used_table2若要數字的資料, 可以用 #used_table2, 若只是要 display 的資料, 直接用 #used_table 即可!! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |