狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

SQL Server中查詢數據庫的大小和數據庫中各表的大小

admin
2018年12月22日 0:49 本文熱度 3954

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

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 = 0

    BEGIN

        --檢查當前表是否為用戶表

        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 = @tablename

        END

        --讀取下一條數據

        FETCH NEXT from table_list_cursor INTO @tablename 

    END

    --釋放游標

    CLOSE table_list_cursor

    DEALLOCATE table_list_cursor

END

GO

用的時候呢,執行一下:

exec sp_updateTableSpaceInfo

select * from temp_tableSpaceInfo

嗯,應該就可以了吧。


如果不想創建存儲過程,也可以直接用下面的SQL語句查詢:

select

object_name(id) tablename,

8*reserved/1024/1024 reserved,

rtrim(8*dpages/1024)+'MB' used,

8*(reserved-dpages)/1024 unused,

8*dpages/1024-rows/1024*minlen/1024 free,

rows

--,*

from sysindexes

where indid=1

order by rows desc


該文章在 2024/2/23 10:23:44 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved