首页 > 数据库 >简单统计SQLSERVER用户数据表大小(包括记录总数和空间占用情况)

简单统计SQLSERVER用户数据表大小(包括记录总数和空间占用情况)

时间:2023-10-28 17:07:05浏览次数:28  
标签:exec list 占用 sp SQLSERVER 数据表 table spaceused 255

在SQLSERVER,简单的组合sp_spaceused和sp_MSforeachtable这两个存储过程,可以方便的统计出用户数据表的大小,包括记录总数和空间占用情况,非常实用,在SqlServer2K和SqlServer2005中都测试通过。


/*

1. exec sp_spaceused '表名'            (SQL统计数据,大量事务操作后可能不准)

2. exec sp_spaceused '表名', true       (更新表的空间大小,准确的表空大小,但可能会花些统计时间)

3. exec sp_spaceused                    (数据库大小查询)

4. exec sp_MSforeachtable "exec sp_spaceused '?'"     (所有用户表空间表小,SQL统计数据,,大量事务操作后可能不准)

5. exec sp_MSforeachtable "exec sp_spaceused '?',true"    (所有用户表空间表小,大数据库慎用)

*/


create   table  #t(name  varchar ( 255 ), rows  bigint , reserved  varchar ( 20 ), data  varchar ( 20 ), index_size  varchar ( 20 ), unused  varchar ( 20 ))

exec  sp_MSforeachtable " insert   into  #t  exec  sp_spaceused  ' ? ' "

select   *   from  #t

drop   table  #t

另外,还有sp_MSforeachdb可以遍历所有数据库,使用方法详见SQL帮助。


方法2:


SET NOCOUNT ON

DECLARE @tablename VARCHAR(255)

DECLARE table_list_cursor CURSOR

FOR

   SELECT  name

   FROM    sys.tables

   ORDER BY name

   --打开游标

OPEN table_list_cursor

   --读取第一条数据

FETCH NEXT FROM table_list_cursor INTO @tablename

SELECT CONVERT(NVARCHAR(255), '') AS name ,

       1 AS [rows] ,

       CONVERT(NVARCHAR(255), '') AS 'res' ,

       CONVERT(NVARCHAR(255), '') AS [data] ,

       CONVERT(NVARCHAR(255), '') AS indexs ,

       CONVERT(NVARCHAR(255), '') AS unuse

INTO   #temp  

   --遍历查询到的表名

WHILE @@FETCH_STATUS = 0

   BEGIN

       INSERT  INTO #temp

               EXEC sp_spaceused @tablename

       FETCH NEXT FROM table_list_cursor INTO @tablename

   END

   --释放游标

CLOSE table_list_cursor

DEALLOCATE table_list_cursor

SELECT *

FROM   #temp order by  len(res) desc;

DROP TABLE #temp

 

标签:exec,list,占用,sp,SQLSERVER,数据表,table,spaceused,255
From: https://blog.51cto.com/u_14682436/8071852

相关文章

  • 串口占用检测工具
    串口占用检测工具平时需要检测哪个程序占用了串口,下面介绍一款非常方便的工具,它的工具箱里包含一个串口占用检测工具,可以非常方便的检测出来哪个程序占用了串口,并给出程序名和PID。官网下载地址:http://www.redisant.cn/mse......
  • Python 框架学习 Django篇 (六) 数据表关联、ORM关联
    在后端服务器开发中,特别是前后端分离的架构中数据库是非常重要的,后端主要就是负责管理数据,而我们经常使用的mysql、oracle都是关系型数据库,什么是关系型数据库?就是建立在关系模型基础上的数据库,而最难处理的就是各个表之间的关联关系,一般这种关系分为三种:一对一、一对多、多对......
  • sqlserver 添加表说明和字段注释
    --为字段添加注释--Eg.executesp_addextendedproperty'MS_Description','字段备注信息','user','dbo','table','字段所属的表名','column','添加注释的字段名';executesp_addextendedproperty'MS_Descriptio......
  • win10怎么查看CPU多核占用率(转)
    原文:https://blog.csdn.net/weixin_44217936/article/details/119185905作者:想躺平的小陈 打开任务管理器——性能——CPU 如下图所示的是CPU总体利用率 查看每个cpu的利用率,右击旁边的折线图 (有几个图就代表CPU是几核的,如下图是12核的) ......
  • 【专题】2023年中国工业互联网平台行业研究报告PDF合集分享(附原数据表)
    这份报告合集是基于中国工业产业升级和智能制造的大背景而展开的。报告合集分析了工业互联网平台市场的发展阶段、平台玩家的产品和服务的底层逻辑以及变化趋势,并探讨了补贴减少、数据归属权之争、标准化与盈利模式、ChatGPT等因素对工业互联网平台企业的影响。此外,报告合集还展示......
  • 服务器常见问题排查(一)——cpu占用高、上下文频繁切换、频繁GC
    一般而言cpu异常往往还是比较好定位的。原因包括业务逻辑问题(死循环)、频繁gc以及上下文切换过多。而最常见的往往是业务逻辑(或者框架逻辑)导致的,可以使用jstack来分析对应的堆栈情况。使用jstack排查占用率问题当使用jstack排查占用率问题时,可以按照以下步骤进行:首先,使用......
  • Filebeat占用CPU过高问题定位与分析
    一、Filebeat简介:Filebeat是一个开源的轻量级日志收集器,用于将日志数据发送到指定的中央服务系统。主要分为三个部分。Prospector负责检测指定日志目录或文件,并对检测到的每个日志文件,filebeat启动一个收割进程(harvester),Filebeat目前支持两种Prospector类型:log和stdin,每个Pros......
  • oracle 11g 由于0rc4km05kgzb9占用undo 使用率高问题
    设置参数解决altersystemset"_smu_debug_mode"=33554432;设置这个之后v$undostat.tuned_undoretention会取(maxquerylensecs+300)和参数undo_retention里的最大值altersystemset"_undo_autotune"=false;直接禁用了AutomaticTuningofUndoRetention特性altersystem......
  • 【专题】2023数字孪生世界白皮书报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34041原文出处:拓端数据部落公众号本次报告合集分为数字孪生综述、技术架构建设、核心技术分享、新型技术成果展示以及重点行业应用五大内容版块。从数字孪生应用建设路径的角度出发,着重提出了“数智视融合,虚实人联动”的观点,并提供数字孪生应用技......
  • Kettle链接SqlServer+Jdk8 问题解决
     这两天要弄个ldap对接,客户端server2016,数据库那边winserver2008,数据库也是2008最开是链接出现类似这样的,更换了链接mssql的Jar版本,从12换到了6的老版本,没用。  后来更改网上提示的  C:\ProgramFiles\Java\jre-1.8\lib\security\java.security文件jdk.tls.......