如何才能快速知道数据库中每个表的大小?

数据|数据库

sp_spaceused
显示行数、保留的磁盘空间以及当前数据库中的表所使用的磁盘空间,或显示由整个数据库保留和使用的磁盘空间。

语法
sp_spaceused [[@objname =] 'objname']
    [,[@updateusage =] 'updateusage']

参数
[@objname =] 'objname'

是为其请求空间使用信息(保留和已分配的空间)的表名。objname 的数据类型是 nvarchar(776),默认设置为 NULL。

[@updateusage =] 'updateusage'

表示应在数据库内(未指定 objname 时)还是在特定的对象上(指定 objname 时)运行 DBCC UPDATEUSAGE。值可以是 true 或 false。updateusage 的数据类型是 varchar(5),默认设置为 FALSE。

返回代码值
0(成功)或 1(失败)

结果集
如果省略 objname,则返回两个结果集。

列名 数据类型 描述
database_name varchar(18) 当前数据库的名称。
database_size varchar(18) 当前数据库的大小。
unallocated space varchar(18) 数据库的未分配空间。

列名 数据类型 描述
reserved varchar(18) 保留的空间总量。
Data varchar(18) 数据使用的空间总量。
index_size varchar(18) 索引使用的空间。
Unused varchar(18) 未用的空间量。

如果指定参数,则返回下面的结果集。

列名 数据类型 描述
Name nvarchar(20) 为其请求空间使用信息的表名。
Rows char(11) objname 表中现有的行数。
reserved varchar(18) 为 objname 表保留的空间总量。
Data varchar(18) objname 表中的数据所使用的空间量。
index_size varchar(18) objname 表中的索引所使用的空间量。
Unused varchar(18) objname 表中未用的空间量。

注释
sp_spaceused 计算数据和索引使用的磁盘空间量以及当前数据库中的表所使用的磁盘空间量。如果没有给定 objname,sp_spaceused 则报告整个当前数据库所使用的空间。

当指定 updateusage 时,Microsoft? SQL Server? 扫描数据库中的数据页,并就每个表使用的存储空间对 sysindexes 表作出任何必要的纠正。例如会出现这样一些情况:当除去索引后,表的 sysindexes 信息可能不是当前的。该进程在大表或数据库上可能要花一些时间运行。只有当怀疑所返回的值不正确,而且该进程对数据库中的其它用户或进程没有负面影响时,才应使用该进程。如果首选该进程,则可以单独运行 DBCC UPDATEUSAGE。

权限
执行权限默认授予 public 角色。

示例
A. 有关表的空间信息
下例报告为 titles 表分配(保留)的空间量、数据使用的空间量、索引使用的空间量以及由数据库对象保留的未用空间量。

USE pubs
EXEC sp_spaceused 'titles'

B. 有关整个数据库的已更新空间信息
下例概括当前数据库使用的空间并使用可选参数 @updateusage。

USE pubs
sp_spaceused @updateusage = 'TRUE'

时间: 2024-11-03 21:30:59

如何才能快速知道数据库中每个表的大小?的相关文章

如何将数据写入到数据库中的表中(c#连接sql数据库)

问题描述 我们使用c#连接数据库时,例如插入一条记录时,数据会被写调入数据缓冲区中,但并没有从数据缓冲区中写入到数据库的表中.当打开数据库中的表时,插入的数据并没显示在数据库的表中.如何才能真正把数据插入表中.希望大家多多指点. 解决方案 解决方案二:参考下SqlConnectionconn=newSqlConnection("DataSource=.;InitialCatalog=trace;IntegratedSecurity=True");conn.Open();SqlDataA

改哪里可以显示数据库中的表

问题描述 packagedatabase;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.ResultSetMetaData;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.JTable;publicclassDao{protectedstaticStringdb

浅谈SQL Server数据库中系统表的作用

(一)系统表:存储SQL所有的系统信息.存储有关数据库服务中的元数据所谓元数据即(比如数据服务器有哪些用户数据库.数据库服务器有哪些登陆账号,数据库中都有哪些表,每个表都有哪些字段 每个数据库有哪些存储过程.视图等等的数据),系统表一般sys开头. (二)了解数据库中系统表,可以编写sql语句或编程的时候用到.以下场景使用到了系统表 1.在创建数据库的时候选判断数据库是否存在:创建数据库中对象(表.视图.存储过程.索引等)是否存在,存在返回,不存在则执行创建语句. 2.批量删除数据库中对象,比如

php快速查找数据库中恶意代码的方法

  本文实例讲述了php快速查找数据库中恶意代码的方法.分享给大家供大家参考.具体如下: 数据库被输入恶意代码,为了保证你的数据库的安全,你必须得小心去清理.有了下面一个超级方便的功能,即可快速清除数据库恶意代码. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 function cleanInput($input) { $search = array( '@

VC ADO 怎么实现复制一个数据库中一个表的某些字段到另一个数据库的表中?

问题描述 VC ADO 怎么实现复制一个数据库中一个表的某些字段到另一个数据库的表中? 想从一个Access数据库中的a表中提取需要的字段复制到另一个数据库的b表中,有大神知道怎么弄吗 解决方案 循环读取第一个表的内容,然后插入第二个表.http://www.cnblogs.com/spatial/archive/2009/07/18/1526255.html 解决方案二: 循环复制,但是需要考虑a与b表是否一样,有什么对应关系,不能乱复制 解决方案三: 如何从一个数据库复制表的结构到另一个数据

jsp-java 中JSP 实现把excel表中数据导入到mysql数据库中的表中的具体实现方法

问题描述 java 中JSP 实现把excel表中数据导入到mysql数据库中的表中的具体实现方法 java 中JSP 实现把excel表中数据导入到mysql数据库中的表中的具体实现方法 解决方案 参考:http://blog.csdn.net/casilin/article/details/5750773 解决方案二: 楼主幸苦了!!谢谢分享!!! 解决方案三: jsp导excel到mysql数据库 http://wenku.it168.com/d_000468232.shtml

select-怎么 同时把数据库中 一个表的多条数据的一个自段修改,

问题描述 怎么 同时把数据库中 一个表的多条数据的一个自段修改, 数据库表 ,student , 字段 stu_id, stu_name,Stu_num,Stu_sex, 表 import , 字段, stu_id, import_id, imp_data, imp_name, 在查出两个表关联信息的时候,怎么把imprt表中的imp_data 字段改为系统当前时间 update import set imp_data =sysdata where stu_id in (select stu_i

hibernate-Hibernate中查询出的表如何操作,这个表不是数据库中的表

问题描述 Hibernate中查询出的表如何操作,这个表不是数据库中的表 我在数据库中查询出来一张表,但是这张表不是数据库中的表,而是一张查询的视图, 例如 id type 1 1 2 1 3 2 我的查询语句是 select distinct(type) as hh,count(type) as count from table group by type; 这个在mysql中可以查出结果list为 hh count 1 2 2 1 但是我在hibernate如何操作这个视图的结果 解决方案

清空SQL Server数据库中所有表数据的方法

原文:清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_MSForEachTable存储过程. 也许很多读者朋友都经历过这样的事情:要在开发数据库基础上清理一个空库,但由于对数据库结构缺乏整体了解,在删除一个表的记录时,删除不了,因为可能有外键约束,一个常见的数据库结构是一个主表,一个子表,这种情况下一般