• sql server查看表大小


    查看SqlServer 数据库中各个表多少行 :

    SELECT A.NAME ,B.ROWS FROM sysobjects A JOIN sysindexes B ON A.id = B.id WHERE A.xtype = 'U' AND B.indid IN(0,1) ORDER BY B.ROWS DESC

    数据库磁盘占用量:

    select name, CAST(convert(float,size) * (8192.0/1024.0)/1024 AS nvarchar)+'MB' AS CP from CDR.dbo.sysfiles
    where name = 'CDR'

    ==================================

    以下是sp_spaceused和sp_MSforeachtable具体的使用示例: 

    exec sp_spaceused '表名'            (查询表所占空间) 
    exec sp_spaceused '表名', true       (更新表的空间大小,准确的表空大小) 
    exec sp_spaceused                    (数据库大小查询) 
    exec sp_MSforeachtable "exec sp_spaceused '?'"     (所有用户表空间表小,SQL统计数据,,大量事务操作后可能不准) 
    exec sp_MSforeachtable "exec sp_spaceused '?',true"    (所有用户表空间表小,大数据库慎用)
     

    ====================详细版============================

    做一个项目,第一件事情就是问:“这个数据库多大?”

    下面是统计数据库数据量大小的方法

    通常我们会使用命令: "sp_helpdb @dbname"

    例如,查询数据库"testdb3"的使用量

    exec sp_helpdb testdb3

      "sp_helpdb"是最常用的命令,

       但是注意:该命令显示的数据库大小"db_size"并不是指现存有效数据的大小,而是指:数据库物理文件 “数据文件大小 + 日志文件大小”的总和

       例如上例中,数据库"testdb3"对应的数据文件和日志文件:

      218.112 + 916.352 = 1107.88MB

      

      数据库创始之初,数据文件和日志文件的初始大小都是默认的2M或3M

      当插入数据后,数据文件和日志文件的大小会随着数据量的增长而增长

      但是当删除数据的时候,会发生什么情况呢? 

      数据文件、日志文件会变小么?不会的,还是保持原来的大小

    怎样获取有效数据的大小?

    答案是使用"sp_spaceused"存储过程分别统计每张表的数据量

    1)  统计单个表的使用空间

    exec sp_spaceused 'dbo.t1'


     

    2) 统计每个表的使用空间

    exec sp_MSforeachtable "exec sp_spaceused '?'"

    ---------------------
    版权声明:本文为CSDN博主「Architect_csdn」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/architect_csdn/article/details/89223308

  • 相关阅读:
    StringTable
    TCP网络协议
    也说JVM内存区域
    JVM类加载
    java中的引用:强、软、弱、虚
    AQS
    vscode支持unicode编码
    设计模式简记-快速改善代码质量的编程规范
    擅事利器
    设计模式简记-通过重构增强代码可测试性实战
  • 原文地址:https://www.cnblogs.com/bdqczhl/p/11357651.html
Copyright © 2020-2023  润新知