在 sql server 中,查询 数据库的大小 和 数据库中各表的大小
生活随笔
收集整理的這篇文章主要介紹了
在 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 中,查询 数据库的大小 和 数据库中各表的大小的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Algs4-1.4.8计算输入文件中相等
- 下一篇: linux cmake编译源码,linu