Sql server 查看那个表占用的空间最多
要查看 SQL Server 中哪个表占用的空间最多,您可以使用以下查询来列出所有表及其占用的空间大小,并按照占用空间从大到小进行排序:
SELECT
t.NAME AS TableName,
p.rows AS RowCounts,
SUM(a.total_pages) * 8 AS TotalSpaceKB,
SUM(a.used_pages) * 8 AS UsedSpaceKB,
(SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB
FROM
sys.tables t
INNER JOIN
sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN
sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN
sys.allocation_units a ON p.partition_id = a.container_id
WHERE
t.NAME NOT LIKE 'dt%'
AND t.is_ms_shipped = 0
AND i.OBJECT_ID > 255
GROUP BY
t.NAME, p.Rows
ORDER BY
TotalSpaceKB DESC;
此查询将返回一个表,其中包含了每个非系统表的名称、行数、总空间、已使用空间以及未使用空间的大小。结果将按照总空间从大到小进行排序,因此第一行将是占用空间最大的表。
请注意,这个查询只考虑了表所占用的空间,并不考虑表中的索引、视图、触发器、存储过程等其他对象所占用的空间。如果您想要查看所有对象的空间占用情况,可以使用其他系统视图和函数进行查询。
如果您想以 MB 为单位查看表占用的空间,可以将查询中的所有 * 8 操作替换为 * 8 / 1024,这样可以将空间从字节转换为千字节(KB),然后再除以 1024 转换为兆字节(MB),如下所示:
SELECT
t.NAME AS TableName,
p.rows AS RowCounts,
SUM(a.total_pages) * 8 / 1024 AS TotalSpaceMB,
SUM(a.used_pages) * 8 / 1024 AS UsedSpaceMB,
(SUM(a.total_pages) - SUM(a.used_pages)) * 8 / 1024 AS UnusedSpaceMB
FROM
sys.tables t
INNER JOIN
sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN
sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN
sys.allocation_units a ON p.partition_id = a.container_id
WHERE
t.NAME NOT LIKE 'dt%'
AND t.is_ms_shipped = 0
AND i.OBJECT_ID > 255
GROUP BY
t.NAME, p.Rows
ORDER BY
TotalSpaceMB DESC;
这样,结果将会以 MB 为单位显示表的总空间、已使用空间和未使用空间的大小。
当然可以,您可以使用 AS 关键字来为查询中的列指定别名,如下所示:
SELECT
t.NAME AS 表名,
p.rows AS 行数,
SUM(a.total_pages) * 8 / 1024 AS 总空间MB,
SUM(a.used_pages) * 8 / 1024 AS 已用空间MB,
(SUM(a.total_pages) - SUM(a.used_pages)) * 8 / 1024 AS 未用空间MB
FROM
sys.tables t
INNER JOIN
sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN
sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN
sys.allocation_units a ON p.partition_id = a.container_id
WHERE
t.NAME NOT LIKE 'dt%'
AND t.is_ms_shipped = 0
AND i.OBJECT_ID > 255
GROUP BY
t.NAME, p.Rows
ORDER BY
总空间MB DESC;
Sql server 查看那个表占用的空间最多的更多相关文章
- SQL Server 数据库每个表占用的空间、大小
查看MSSQL数据库每个表占用的空间大小 sp_spaceused显示行数.保留的磁盘空间以及当前数据库中的表所使用的磁盘空间,或显示由整个数据库保留和使用的磁盘空间. 语法sp_spaceused ...
- SQL Server查看所有表大小、表行数和占用空间信息
一.查看表名和对应的数据行数select a.name as '表名',b.rows as '表数据行数'from sysobjects a inner join sysindexes bon a. ...
- SQL Server查看所有表大小,所占空间
create table #Data(name varchar(100),row varchar(100),reserved varchar(100),data varchar(100),index_ ...
- sql server 查看锁表SQL【转】
1.select * from sys.dm_tran_locks或sp_LOCK 查看request_node 字段中为'X'(排他锁)或'IX'(意向排他锁)2.用sp_who2 + pid(进程 ...
- sql server查看创建表的代码,表定义
1.查看建表语句在“对象资源管理器”中找到要导出的表,选中该表并单击右键,“编写表脚本为(S)”/“CREATE到(C)”/“新查询编辑器窗口”即可查看该表的建表语句.2.导出建表语句在“对象资源管理 ...
- SQL Server 查看数据表占用空间大小的SQL语句
) ) if object_id('tempdb..#space') is not null drop table #space ),rows ),data ),index_size ),unused ...
- SQL Server 查看指定表上的索引
解决方案: sys.indexs; ---------------------------------------------------------------------------------- ...
- sql server查看某个表上的触发器
用企业管理器查看 在某个具体的表上点右键->“所有任务”->“管理触发器”,选择所要查看的触发器
- SQL SERVER 查看数据库表的字段类型,是否允许为NULL,默认值,主键等
)-- 表名 set @table_name='bqcform101' --============表结构 select 类别,表名or字段名,描述,字段类型,是否自增,允许为NULL,默认值 fro ...
- sql server 查看所有表记录数
SELECT object_name (i.id) TableName, rows as rows FROM sysindexes i INNER JOIN sysObjects o ON (o.id ...
随机推荐
- study Python3【4】字符串的判断
判断类型: result为True和False str = '1122abc' str.isalnum()是数字或者字母 str = 'MDCA' str.isalpha() 是字母 str = '1 ...
- TMS WEB Core的DEMO
TMS WEB Core的思路就是把你界面设计转换成js.这个打通了,将会使生产效率呈几何级数提高. 说如何让其demo的能跑起来: 1.看图.增加参数(TMSHttpConfig.exe). 2.运 ...
- ESP32系列,IDF官方实例——外设:通用GPIO
示例位于 \examples\peripherals\gpio\generic_gpio 文件夹内 GPIO示例逻辑简单,直接看代码理解. /* GPIO示例 此示例代码位于公共域(或CC0许可,由您 ...
- MONyog入门总结
1.安装步骤 1)安装MONyog_6.6.3.exe文件,步骤如下: 2)停止MONyog服务 3)将MONyog.exe和MONyog-patch.exe文件放到E:\MONyog\bin目录下 ...
- VSCode输出框中文乱码问题
vscode输出中文的时候,总是出现乱码.找了一个一劳永逸解决问题的方法,转载的,原教程地址:https://blog.csdn.net/a19990412/article/details/90270 ...
- MySQL 中长事务可能会导致哪些问题?
MySQL 中长事务可能会导致哪些问题? 长事务是指那些执行时间较长.涉及多个操作且没有及时提交或回滚的事务.长事务在 MySQL 中可能引发一系列问题,尤其是在高并发的数据库环境中.以下是长事务可能 ...
- adb常见命令及日志
一.adb介绍 1.adb(Android Debug Bridge)是android sdk的一个工具 2.adb是用来连接安卓设备和PC端的桥梁,用户可以通过adb在电脑上对手机进行一系列操作 3 ...
- 在Podman中配置Dify Sandbox服务与外部PostgreSQL服务的网络连接
在Podman中配置Dify Sandbox服务与外部PostgreSQL服务的网络连接 引言 在容器化环境中,确保不同服务之间的可靠通信是至关重要的.本文将指导你如何使用Podman来配置Dify ...
- 29.1K star!免费接入GPT-4/DeepSeek等顶级大模型,这个开源API神器绝了!
嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 还在为天价API费用发愁?这个开源项目让你免费畅用GPT-4.DeepSeek.Claude ...
- 漏洞预警 | Apache NiFi信息泄露漏洞
0x00 漏洞编号 CVE-2024-56512 0x01 危险等级 中危 0x02 漏洞概述 Apache NiFi是一个强大的.易于使用的数据集成平台,旨在自动化和管理数据流,尤其是在大数据环境中 ...