如何查看SQLServer数据库每个表占用的空间大小?

如何查看SQLServer数据库每个表占用的空间大小?

创建存储过程:

CREATE PROCEDURE [dbo].[sys_viewTableSpace]
AS

BEGIN

SET NOCOUNT ON;

CREATE TABLE [dbo].#tableinfo(
 表名 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
 记录数 [int] NULL,
 预留空间 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
 使用空间 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
 索引占用空间 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
 未用空间 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL
)

insert into #tableinfo(表名, 记录数, 预留空间, 使用空间, 索引占用空间, 未用空间)
exec sp_MSforeachtable "exec sp_spaceused ‘?‘"

select * from #tableinfo
order by 记录数 desc

drop table #tableinfo

END

使用的时候直接 :exec sys_viewtablespace

时间: 2024-10-11 18:00:49

如何查看SQLServer数据库每个表占用的空间大小?的相关文章

查看SQLServer数据库每个表占用的空间大小

创建存储过程: CREATE PROCEDURE [dbo].[sys_viewTableSpace] AS BEGIN SET NOCOUNT ON; CREATE TABLE [dbo].#tableinfo( 表名 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL, 记录数 [int] NULL, 预留空间 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL, 使用空间 [varchar](50) COLLATE

查看MSSQL数据库每个表占用的空间大小

需要查看数据库表的大小,查询SQL Server联机从书得到如下语句: sp_spaceused 显示行数.保留的磁盘空间以及当前数据库中的表所使用的磁盘空间,或显示由整个数据库保留和使用的磁盘空间. 语法 sp_spaceused [[@objname =] 'objname']    [,[@updateusage =] 'updateusage'] 参数 [@objname =] 'objname' 是为其请求空间使用信息(保留和已分配的空间)的表名.objname 的数据类型是 nvar

查看Sql Server所有表占用的空间大小

2010-01-26 sp_spaceused可以查看某个表占用的空间,但不能一次查看所有的表.今天研究了一下这个sp,写了下面这个查询: --刷新系统数据dbcc updateusage(0) with no_infomsgs --每页8kselect name = name,id, rows = convert(char(11), rows), reserved = ltrim(str(reservedpages * 8.,15,0) + ' KB'), data = ltrim(str(p

如何查看MySQL中每张表占用的空间大小

如题,找到MySQL中的information_schema表,这张表记录了所有数据库中表的信息,主要字段含义如下: TABLE_SCHEMA : 数据库名 TABLE_NAME:表名 ENGINE:所使用的存储引擎 TABLES_ROWS:记录数 DATA_LENGTH:数据大小 INDEX_LENGTH:索引大小 如果需要查询所有数据库占用空间大小只需要执行SQL命令: mysql> use information_schema Database changed mysql> SELECT

查看SqlServer某张表的物理空间占用情况

以下语句可以查看表的物理空间使用情况 包括 [ROWS] 内容的行数.. [reserved] 保留的磁盘大小.. [data] 数据占用的磁盘大小.. [index_size] 索引占用的磁盘大小.. [unused] 未使用的磁盘大小 exec sp_spaceused 'TSUM_MemberAttribute' 返回结果如下 参考使用..

查看 MySQL 数据库中每个表占用的空间大小

TABLE_SCHEMA : 数据库名TABLE_NAME:表名ENGINE:所使用的存储引擎TABLES_ROWS:记录数DATA_LENGTH:数据大小INDEX_LENGTH:索引大小 SELECT TABLE_NAME,DATA_LENGTH+INDEX_LENGTH,TABLE_ROWS FROM TABLES WHERE TABLE_SCHEMA='数据库名' AND TABLE_NAME='表名'

MSSQL数据库每个表占用的空间、大小

方法一: 1 if NOT EXISTS 2 (SELECT * 3 FROM dbo.sysobjects 4 WHERE id = object_id(N'[dbo].[tablespaceinfo]') 5 AND OBJECTPROPERTY(id, N'IsUserTable') = 1) create table tablespaceinfo --创建结果存储表 (nameinfo varchar(50) , rowsinfo int , reserved varchar(20) ,

SQL Server 查看数据库在数据缓存(data cache)中占用的空间大小

1 use master 2 go 3 select * from sys.dm_os_buffer_descriptors 4 go 5 6 --查看数据库在数据缓存(data cache)中占用的空间大小 7 --由于每个数据页对应动态管理视图(dynamic management view,DMV)中的一行,为128 字节,为1/8个千字节(KB) 8 --1字节(Byte)=8位(Bit) 9 --1千字节(KB)=1024字节(Byte) 10 --1兆(MB)=1024千字节(KB)

MySQL中查询所有数据库占用磁盘空间大小和单个库中所有表的大小的sql语句

查询所有数据库占用磁盘空间大小的SQL语句: select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size, concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size from information_schema.tables group by TABLE_SCHEMA order by data_lengt