查看SQL-SERVER数据库及各个表的数据量及占用空间大小

摘要:
1.查看数据库并直接执行存储过程sp_Spaceused,即execsp_Spaceused;2.若要查看表,请将存储过程后的表名添加到EXECsp_spaceused“table name”;3.要查看数据库中的所有表,可以编写一个存储过程,然后按如下方式执行存储过程:------=============================================注意:更新查询数据库中每个表的大小,并将结果存储在数字中

1、查看某个数据库,直接执行存储过程sp_spaceused即可

exec sp_spaceused;

查看SQL-SERVER数据库及各个表的数据量及占用空间大小第1张

2、查看某个表,在存储过程后面加上表名即可

EXEC sp_spaceused '表名';

查看SQL-SERVER数据库及各个表的数据量及占用空间大小第2张

3、查看该数据库中的所有表,可以写一个存储过程,然后执行即可

存储过程如下:

-- =============================================
-- 说明:更新查询数据库中各表的大小,结果存储到数据表中
-- =============================================
CREATE PROCEDURE [dbo].[P_UpdateTableSpaceInfo]
AS
BEGIN
    --查询是否存在结果存储表
    IF NOT EXISTS (SELECT * FROM sysobjects where id = OBJECT_ID(N'temp_tableSpaceInfo')
                      AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
    BEGIN
        --不存在则创建
        CREATE TABLE temp_tableSpaceInfo
        (name NVARCHAR(128), 
        rows char(11), 
        reserved VARCHAR(18),
        data VARCHAR(18),
        index_size VARCHAR(18),
        unused VARCHAR(18))
    END
    --清空数据表
    DELETE FROM temp_tableSpaceInfo
 
    --定义临时变量在遍历时存储表名称
    DECLARE @tablename VARCHAR(255)
 
    --使用游标读取数据库内所有表表名
    DECLARE table_list_cursor CURSOR FOR 
    SELECT name FROM sysobjects 
    WHERE OBJECTPROPERTY(id, N'IsTable') = 1 AND name NOT LIKE N'#%%' ORDER BY name
 
    --打开游标
    OPEN table_list_cursor
    --读取第一条数据
    FETCH NEXT FROM table_list_cursor INTO @tablename 
 
    --遍历查询到的表名
    WHILE @@FETCH_STATUS = 0
    BEGIN
        --检查当前表是否为用户表
        IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(@tablename) 
                      AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
        BEGIN
            --当前表则读取其信息插入到表格中
            EXECUTE sp_executesql N'INSERT INTO temp_tableSpaceInfo 
            EXEC sp_spaceused @tbname', N'@tbname varchar(255)', @tbname = @tablename
        END
        --读取下一条数据
        FETCH NEXT FROM table_list_cursor INTO @tablename 
    END
 
    --释放游标
    CLOSE table_list_cursor
    DEALLOCATE table_list_cursor
END
 
GO

 执行,查看:

EXEC P_UpdateTableSpaceInfo
SELECT * FROM temp_tableSpaceInfo;

查看SQL-SERVER数据库及各个表的数据量及占用空间大小第3张

免责声明:文章转载自《查看SQL-SERVER数据库及各个表的数据量及占用空间大小》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇jq+jsonp+ajax解决跨域问题MSSQL—字符串分离(Split函数)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【SequoiaDB】5 巨杉数据库SequoiaDB基本操作

Sequoia DB巨杉数据库作为分布式数据库,由数据库存储引擎与数据库实例两大模块组成。前面介绍了Sequoia DB巨杉数据库集群的部署以及MySQL实例的安装,下面将继续就以下主题进行介绍。 1 安装目录详解 1.1 SequoiaDB安装目录 SequoiaDB巨杉数据库的默认安装目录为/opt/sequoiadb/,安装完成后可以看到目录如下:...

编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,解决方法与解释

在自学杨中科老师的视频教学时,拓展编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时 会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,错误产生时,我的代码如下: SqlHelper.cs代码如下: public static SqlDataReader ExecuteR...

matlab学习:人脸识别之PCA( Principal Component Analysis )

1.链接推荐 关于理解PCA的推荐链接:http://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html 关于理解SVD的推荐链接:http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-...

SQL SERVER 2008 R2 自动备份并删除过期备份数据

    我们的系统维护的过程中肯定需要对数据库进行定期的备份,但是如果定时手工备份的话,不但浪费时间,也不能保证每次都可以按时备份,所以自动备份成为了我们的不二选择,但是定时备份需要定期清理备份文件,不然会因为磁盘空间不足导致备份失败,失去备份的准确性,下面我们就一步步来看一下如果自动备份并删除过期备份数据。 1.打开SQL SERVER 2008 R2,...

java8 lambda表达式应用--获取数组中重复的数据

现在已经出java 10了。之前趁java8出来的那段时间学习了lambda表达式,最近项目中需要用到在数组中寻找重复数据,按照以前的思维,就是写循环!能解决这个问题,旧的技术确实能解决这个问题,但代码行数和性能不一定有这么好。这就是学习新技术的动力所在吧,不然老是用旧技术,总会有一天发现,旧技术解决不了的问题,而新技术只需要几行代码,这就尴尬了。 获取重...

为什么要学数据库原理?

只会写代码的是码农;学好数据库,基本能混口饭吃;在此基础上再学好操作系统和计算机网络,就能当一个不错的程序员。如果能再把离散数学、数字电路、体系结构、数据结构/算法、编译原理学通透,再加上丰富的实践经验与领域特定知识,就能算是一个优秀的工程师了。 计算机其实就是存储/IO/CPU三大件; 而计算说穿了就是两个东西:数据与算法(状态与转移函数)。常见的软件应...