有没有语句能查询SQL数据库中每一个表的大小

有没有语句能查询SQL数据库中每一个表的大小,第1张

--得到数据库中所有表的空间/记录情况

exec sp_MSForEachTable

@precommand=N'

create table ##(

id int identity,

表名 sysname,

字段数 int,

记录数 int,

保留空间 Nvarchar(10),

使用空间 varchar(10),

索引使用空间 varchar(10),

未用空间 varchar(10))',

@command1=N'insert ##(表名,记录数,保留空间,使用空间,索引使用空间,未用空间) exec sp_spaceused ''''

update ## set 字段数=(select count() from syscolumns where id=object_id(''''))

where id=scope_identity()', @postcommand=N'select from ## order by id drop table ##'

直接在查询分析器运行即可:

declare @id int

declare @type character(2)

declare @pages

int

declare @dbname sysname

declare @dbsize dec(15,0)

declare @bytesperpage dec(15,0)

declare @pagesperMB dec(15,0)

create table #spt_space

(

objid int null,

rows int null,

reserved dec(15) null,

data dec(15) null,

indexp dec(15) null,

unused dec(15) null

)

set nocount on

-- Create a cursor to loop through the user tables

declare c_tables cursor for

select id

from sysobjects

where xtype = 'U'

open c_tables

fetch next from c_tables

into @id

while @@fetch_status = 0

begin

/ Code from sp_spaceused /

insert into #spt_space (objid, reserved)

select objid = @id, sum(reserved)

from sysindexes

where indid in (0, 1, 255)

and id = @id

select @pages = sum(dpages)

from sysindexes

where indid < 2

and id = @id

select @pages = @pages + isnull(sum(used), 0)

from sysindexes

where indid = 255

and id = @id

update #spt_space

set data = @pages

where objid = @id

/ index: sum(used) where indid in (0, 1, 255) - data /

update #spt_space

set indexp = (select sum(used)

from sysindexes

where indid in (0, 1, 255)

and id = @id)

- data

where objid = @id

/ unused: sum(reserved) - sum(used) where indid in (0, 1, 255) /

update #spt_space

set unused = reserved

- (select sum(used)

from sysindexes

where indid in (0, 1, 255)

and id = @id)

where objid = @id

update #spt_space

set rows = irows

from sysindexes i

where iindid < 2

and iid = @id

and objid = @id

fetch next from c_tables

into @id

end

select TableName = (select left(name,60) from sysobjects where id = objid),

Rows = convert(char(11), rows),

ReservedKB = ltrim(str(reserved dlow / 1024,15,0) + ' ' + 'KB'),

DataKB = ltrim(str(data dlow / 1024,15,0) + ' ' + 'KB'),

IndexSizeKB = ltrim(str(indexp dlow / 1024,15,0) + ' ' + 'KB'),

UnusedKB = ltrim(str(unused dlow / 1024,15,0) + ' ' + 'KB')

from #spt_space, masterdbospt_values d

where dnumber = 1

and dtype = 'E'

order by reserved desc

drop table #spt_space

close c_tables

deallocate c_tables

要查的表名')

获取数据库表名和字段

sqlserver中各个系统表的作用

sysaltfiles 主数据库 保存数据库的文件

syscharsets 主数据库 字符集与排序顺序

sysconfigures 主数据库 配置选项

syscurconfigs 主数据库 当前配置选项

sysdatabases 主数据库 服务器中的数据库

syslanguages 主数据库 语言

syslogins 主数据库 登陆帐号信息

sysoledbusers 主数据库 链接服务器登陆信息

sysprocesses 主数据库 进程

sysremotelogins主数据库 远程登录帐号

syscolumns 每个数据库 列

sysconstrains 每个数据库 限制

sysfilegroups 每个数据库 文件组

sysfiles 每个数据库 文件

sysforeignkeys 每个数据库 外部关键字

sysindexs 每个数据库 索引

sysmenbers 每个数据库 角色成员

sysobjects 每个数据库 所有数据库对象

syspermissions 每个数据库 权限

systypes 每个数据库 用户定义数据类型

select 列名=name from syscolumns where id=object_id(N'表名'

--读取指定表的所有列名

select name from syscolumns where id=(select max(id) from sysobjects where xtype=' and name='u'u'--读取库中的所有表名

select name from sysobjects where xtype='

--查询一个索引大小select pg_size_pretty(pg_relation_size('indexname))--查看一张表及此它上的索引总大小select pg_size_pretty(pg_total_relation_size('tablename')); --查看所有 schema里面索引大小,大到小的顺序排列:select indexrelname,pg_size_pretty( pg_relation_size(relid))from pg_stat_user_indexes where schemaname = 'schemaname' order by pg_relation_size(relid) desc;--查看所有 schema里面表的大小,从大到小顺序排列:select relname, pg_size_pretty(pg_relation_size(relid))from pg_stat_user_tables where schemaname = 'schemaname' order by pg_relation_size(relid) desc; --查看数据库大小:select pg_databasedatname,pg_size_pretty(pg_database_size(pg_databasedatname)) AS sizefrom pg_database;--查看表空间大小

以上就是关于有没有语句能查询SQL数据库中每一个表的大小全部的内容,包括:有没有语句能查询SQL数据库中每一个表的大小、如何查看SQL2000数据库中所有表的数据量大小、如何通过SQL命令查看数据库的文件大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10154846.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存