sql資料表及資料占用空間查詢

2021-05-26 12:48:52 字數 1886 閱讀 9166

一、查詢某個資料表占用空間大小       

code:

exec sp_spaceused 『表名稱』

二、迴圈讀取資料庫中所有表,並查詢出每張表所占用的空間大小

code:

--建立乙個臨時表

use [dbname]

create table #tabspaceused(

name nvarchar(100),

row char(11),

reserved varchar(18),

data varchar(18),

index_size varchar(18),

unused varchar(18)

)--迴圈資料庫查詢某個表所佔空間大小

exec sp_msforeachtable 'insert into #tabspaceused exec sp_spaceused ''?'''

--查詢結果

select * from #tabspaceused

--刪除臨時表

drop table #tabspaceused

--另一種方法

select

tablename = obj.name,

totalrows = prt.rows,

[spaceused(kb)] = sum(alloc.used_pages)*8

from sys.objects obj

join sys.indexes idx on obj.object_id = idx.object_id

join sys.partitions prt on obj.object_id = prt.object_id

join sys.allocation_units alloc on alloc.container_id = prt.partition_id

where obj.type = 'u' and idx.index_id in (0, 1)

group by obj.name, prt.rows

order by tablename

三、查詢出若干條資料記錄所佔空間大小

code:

--建立乙個臨時表

use [dbname]

create table #tabspaceused(

name nvarchar(100),

row char(11),

reserved varchar(18),

data varchar(18),

index_size varchar(18),

unused varchar(18)

)select * into #temp from [tablename] --where 條件

exec('use tempdb;insert into #tabspaceused exec sp_spaceused ''#temp'' drop table #temp')

select * from #tabspaceused --查詢結果

四、定義一些變數,查詢其所佔大小

code:

declare @t nvarchar(200)

declare @t1 numeric(15, 2)

set @t='新建文字文件文件.txt'

set @t1=13.09234

select datalength(@t)--所佔位元組

select datalength(@t1)--所佔位元組

查詢資料表空間

系統介面異常無法匯出的時候,考慮下系統表空間是否不能擴充套件了.查詢表空間指令碼如下 select upper f.tablespace name 表空間名 d.tot grootte mb 表空間大小 m d.tot grootte mb f.total bytes 已使用空間 m to char...

查詢資料表空間

系統介面異常無法匯出的時候,考慮下系統表空間是否不能擴充套件了.查詢表空間指令碼如下 select upper f.tablespace name 表空間名 d.tot grootte mb 表空間大小 m d.tot grootte mb f.total bytes 已使用空間 m to char...

查詢資料表空間

系統介面異常無法匯出的時候,考慮下系統表空間是否不能擴充套件了.查詢表空間指令碼如下 select upper f.tablespace name 表空間名 d.tot grootte mb 表空間大小 m d.tot grootte mb f.total bytes 已使用空間 m to char...