日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

在 sql server 中,查询 数据库的大小 和 数据库中各表的大小

發布時間:2025/3/20 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在 sql server 中,查询 数据库的大小 和 数据库中各表的大小 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

在 sql server 中,查詢 數據庫的大小 和 數據庫中各表的大小

其實本來只想找一個方法能查詢一下 數據庫 的大小,沒想到這個方法還能查詢數據庫中 各個數據表 的大小,嗯,挺好玩的,記錄一下。

MSDN資料:https://msdn.microsoft.com/zh-cn/library/ms188776.aspx

如果只是查詢數據庫的大小的話,直接使用以下語句即可:

EXEC sp_spaceused

為了保證查詢結果的實時性,推薦使用 @updateusage 參數來確保統計數據是最新的:

EXEC sp_spaceused @updateusage = N'TRUE';

執行完畢后結果是兩個表,第一個表中包含了基本的統計信息,第二個表示更加詳細的數據占用情況。

如果想具體查詢某個表的大小,加上表名即可:

EXEC sp_spaceused 'spt_values'

結果很簡單:

(完)

?

?

。。。

其實吧,能查一張表,就想怎么能把數據庫里的表都查出來。。。

嗯,來一個吧,從網上查到的:

-- ============================================= -- 描 述:更新查詢數據庫中各表的大小,結果存儲到數據表中 -- ============================================= CREATE PROCEDURE [dbo].[sp_UpdateTableSpaceInfo] AS BEGIN--查詢是否存在結果存儲表IF NOT EXISTS (SELECT * FROM sysobjects where id = OBJECT_ID(N'temp_tableSpaceInfo') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)BEGIN--不存在則創建CREATE TABLE temp_tableSpaceInfo(name NVARCHAR(128), rows char(11), reserved VARCHAR(18),data VARCHAR(18),index_size VARCHAR(18),unused VARCHAR(18))END--清空數據表DELETE FROM temp_tableSpaceInfo--定義臨時變量在遍歷時存儲表名稱DECLARE @tablename VARCHAR(255)--使用游標讀取數據庫內所有表表名DECLARE table_list_cursor CURSOR FOR SELECT name FROM sysobjects WHERE OBJECTPROPERTY(id, N'IsTable') = 1 AND name NOT LIKE N'#%%' ORDER BY name--打開游標OPEN table_list_cursor--讀取第一條數據FETCH NEXT FROM table_list_cursor INTO @tablename --遍歷查詢到的表名WHILE @@FETCH_STATUS = 0BEGIN--檢查當前表是否為用戶表IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(@tablename) AND OBJECTPROPERTY(id, N'IsUserTable') = 1)BEGIN--當前表則讀取其信息插入到表格中EXECUTE sp_executesql N'INSERT INTO temp_tableSpaceInfo EXEC sp_spaceused @tbname', N'@tbname varchar(255)', @tbname = @tablenameEND--讀取下一條數據FETCH NEXT FROM table_list_cursor INTO @tablename END--釋放游標CLOSE table_list_cursorDEALLOCATE table_list_cursor ENDGO

用的時候呢,執行一下:

EXEC sp_UpdateTableSpaceInfo SELECT * FROM temp_tableSpaceInfo

嗯,應該就可以了吧。

(這次真的完了)

轉載于:https://my.oschina.net/rootliu/blog/2252939

總結

以上是生活随笔為你收集整理的在 sql server 中,查询 数据库的大小 和 数据库中各表的大小的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。