首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 獲取所有使用者表空間佔用大小存儲過程:一鍵掌握資料庫儲存分佈

     編輯:關於SqlServer

提供一個實用存儲過程 get_tableinfo,掃描資料庫所有使用者表,呼叫 sp_spaceused 取得每表空間佔用,結果寫入暫存表 tablespaceinfo 供後續查詢排序。

存儲過程核心邏輯

  1. 檢查/建立結果表 tablespaceinfo(欄位:nameinfo、rowsinfo、reserved、datainfo、index_size、unused)。
  2. 游標遍歷 sysobjects 類型為 'U' (使用者表) 且非暫存表(not like '#%%')。
  3. 動態 SQL 執行 sp_spaceused @tbname 並將結果寫入結果表。
  4. 關閉游標釋放資源。

使用方式

-- 執行掃描
exec get_tableinfo

-- 查詢結果,按保留空間降序排列
select *
from tablespaceinfo
order by cast(left(ltrim(rtrim(reserved)), len(ltrim(rtrim(reserved)))-2) as int) desc

欄位說明:reserved 總保留空間、datainfo 資料空間、index_size 索引空間、unused 未使用空間(單位通常為 KB,字串格式如 "12345 KB")。

此過程可快速定位大表、規劃歸檔、優化儲存分配,是 DBA 例行巡檢利器。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved