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) , datainfo varchar(20) , index_size varchar(20) , unused varchar(20) ) delete
 6 FROM tablespaceinfo --清空数据表 declare @tablename varchar(255) --表名称 declare @cmdsql varchar(500) DECLARE Info_cursor CURSOR FORSELECT o.name
 7 FROM dbo.sysobjects o
 8 WHERE OBJECTPROPERTY(o.id, N‘IsTable‘) = 1
 9         AND o.name NOT LIKE N‘#%%‘
10 ORDER BY  o.name OPEN Info_cursor FETCH NEXT
11 FROM Info_cursor INTO @tablename WHILE @@FETCH_STATUS = 0 BEGIN if EXISTS
12     (SELECT *
13     FROM dbo.sysobjects
14     WHERE id = object_id(@tablename)
15             AND OBJECTPROPERTY(id, N‘IsUserTable‘) = 1) execute sp_executesql N‘insert into tablespaceinfo exec sp_spaceused @tbname‘, N‘@tbname varchar(255)‘, @tbname = @tablename FETCH NEXT
16 FROM Info_cursor INTO @tablename
17     END CLOSE Info_cursor DEALLOCATE Info_cursor GO --itlearner注:显示数据库信息 sp_spaceused @updateusage = ‘TRUE‘ --itlearner注:显示表信息SELECT *
18 FROM tablespaceinfo
19 ORDER BY  cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserved)))-2) AS int) DESC 

方法二:

1 SELECT object_name(id) tablename,
2         8*reserved/1024 reserved,
3         dpages,
4          rtrim(8*dpages/1024)+‘Mb‘ used,8*(reserved-dpages)/1024 unused, 8*dpages/1024-rows/1024*minlen/1024 free, rows,*
5 FROM sysindexes a
6 WHERE indid=1
7 ORDER BY  a.reserved DESC 
时间: 2024-10-18 03:50:29

MSSQL数据库每个表占用的空间、大小的相关文章

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

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

如何查看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,

查看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

查看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

查看 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='表名'

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

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)

查询sql数据库中表占用的空间大小

最近在给一家客户做系统维护时,需要查看数据库表的大小,相关的sql如下: 先在左上角下拉框中选对要查的数据库再执行以下语句 1. exec sp_spaceused '表名'          --(SQL统计数据,大量事务操作后可能不准)2. exec sp_spaceused '表名', true       --(准确的表空间大小,但可能会花些统计时间)3. exec sp_spaceused                   -- (数据库大小查询)4. exec sp_MSforea