SQL Server 查看数据库表使用空间

news2025/1/14 16:14:56

sp_spaceused (Transact-SQL)   

系统表  

select * from sys.tables where [name] = 'sys_car'

select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME = 'sys_car'

select * from sys.objects where type = 'U' and type_desc = 'USER_TABLE'

select * from sys.syscolumns where id=object_id('sys_car') and name='CarName'

select * from sys.extended_properties where minor_id = 0

select * from sys.indexes WHERE type_desc != 'HEAP'

查看某个数据库所有表

USE [dbTest]
GO

SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
ORDER BY TABLE_NAME

查看某个数据库所有索引

USE [dbTest]
GO

SELECT
    i.name AS IndexName,
    OBJECT_NAME(i.object_id) AS TableName,
    i.index_id,
    i.type_desc,
    i.is_primary_key,
    i.is_unique,
    i.is_disabled
FROM sys.indexes AS i
INNER JOIN sys.tables AS t ON i.object_id = t.object_id
WHERE i.type_desc != 'HEAP'
ORDER BY TableName,IndexName;

-- 查询某个表的所有索引
-- exec sp_helpindex [表名]
exec sp_helpindex test

查看【数据库】总大小 和 可用空间

-- 方式 1:查看数据库文件的大小和使用情况
SELECT 
    name AS [FileName],
	type_desc AS [File Type],
    size/128 AS [SizeInMB],
	size/128.0 AS [Current Size in MB 当前大小(MB)],
    FILEPROPERTY(name, 'SpaceUsed')/128.0 AS [Space Used In MB 已用空间(MB)],
    (size - FILEPROPERTY(name, 'SpaceUsed'))/128.0 AS [Available Space In MB 可用空间(MB)]
FROM sys.database_files
WHERE 1=1 
-- AND type_desc = 'LOG';
go

-- 方式 2:查看数据库文件的大小和使用情况
SELECT 
    name AS 'File Name', 
    type_desc AS 'File Type',
	size/128 AS [SizeInMB],
    size/128.0 AS 'Current Size in MB 当前大小(MB)',
	FILEPROPERTY(name, 'SpaceUsed')/128.0 AS [Space Used In MB 已用空间(MB)],
    size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS [Available Space In MB 可用空间(MB)],
	database_id
FROM sys.master_files
WHERE database_id = DB_ID() 
--AND type_desc = 'LOG';
go

-- 查看数据库文件路径,当前大小
SELECT DB_NAME(database_id) AS [Database Name],
[Name] AS [Logical Name],
[Physical_Name] AS [Physical Name],
((size * 8) / 1024) AS [Size(MB)]
FROM sys.master_files
ORDER BY [Size(MB)] DESC
go

-- 存储过程
EXEC sp_spaceused; 
-- unallocated space 未分配空间,可用空间
-- reserved          预留空间

-- 返回值
-- database_name:数据库名称。
-- database_size:数据库大小 (MB)。 database_size 包括数据和日志文件。
-- unallocated space:数据库中未为数据库对象保留的空间。

-- reserved:由数据库中对象分配的空间总量。
-- data:数据使用的空间总量。
-- index_size:索引使用的空间总量。
-- unused:为数据库中的对象保留但尚未使用的空间总量。
-- rows:表中现有的行数。 如果指定的对象是 Service Broker 队列,则此列指示队列中的消息数。
go

每个表的已用空间

-- 方式 1
SELECT db_name() as DbName,
    t.NAME AS TableName,
    s.Name AS SchemaName,
    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
LEFT OUTER JOIN sys.schemas s ON t.schema_id = s.schema_id
WHERE t.NAME NOT LIKE 'dt%' AND t.is_ms_shipped = 0 AND i.OBJECT_ID > 255 
GROUP BY t.Name, s.Name, p.Rows
ORDER BY UsedSpaceKB DESC;
go
 
-- 方式 2
SELECT db_name() as DbName,
    t.NAME AS TableName,
    s.Name AS SchemaName,
    p.rows AS RowCounts,
    SUM(a.total_pages) * 8 AS TotalSpaceKB, 
    CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS 总共占用空间MB,
    SUM(a.used_pages) * 8 AS UsedSpaceKB, 
    CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB, 
    (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB,
    CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) 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
LEFT OUTER JOIN sys.schemas s ON t.schema_id = s.schema_id
WHERE t.NAME NOT LIKE 'dt%' AND t.is_ms_shipped = 0 AND i.OBJECT_ID > 0
GROUP BY t.Name, s.Name, p.Rows
ORDER BY 总共占用空间MB desc;
go
 
-- 方式 3 临时表,索引空间
CREATE TABLE #TableSizes
(
    TableName NVARCHAR(128),     -- 表名称
    RowCounts BIGINT,            -- 表中的总行数
    ReservedSpace NVARCHAR(128), -- 预留空间(总的)
    DataSpace NVARCHAR(128),     -- 数据占用的空间
    IndexSpace NVARCHAR(128),    -- 索引占用的空间
    UnusedSpace NVARCHAR(128)    -- 未使用的空间
)
 
EXEC sp_MSforeachtable @command1="INSERT INTO #TableSizes EXEC sp_spaceused '?'"
 
SELECT TableName
,RowCounts
,ReservedSpace
,UnusedSpace
,DataSpace
,IndexSpace
FROM #TableSizes ORDER BY CAST(REPLACE(ReservedSpace, ' KB', '') AS INT) DESC
 
DROP TABLE #TableSizes
go
 
-- 方式4 存储过程
-- unallocated space 未分配空间,可用空间
-- reserved          预留空间
EXEC sp_spaceused;
 
EXEC sp_spaceused 'test';
 
go

*
*
*

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2276555.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分页工具代码重构

文章目录 1.common-mybatis-plus-starter1.目录2.PageInfo.java3.PageResult.java4.SunPageHelper.java 1.common-mybatis-plus-starter 1.目录 2.PageInfo.java package com.sunxiansheng.mybatis.plus.page;import lombok.EqualsAndHashCode; import lombok.ToString;impor…

Vue学习二——创建登录页面

前言 以一个登录页面为例子,这篇文章简单介绍了vue,element-plus的一些组件使用,vue-router页面跳转,pinia及持久化存储,axios发送请求的使用。后面的页面都大差不差,也都这么实现,只是内容&am…

初始Django框架

初识Django Python知识点:函数、面向对象。前端开发:HTML、CSS、JavaScript、jQuery、BootStrap。MySQL数据库。Python的Web框架: Flask,自身短小精悍 第三方组件。Django,内部已集成了很多组件 第三方组件。【主要…

深度学习每周学习总结R4(LSTM-实现糖尿病探索与预测)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客R6中的内容,为了便于自己整理总结起名为R4🍖 原作者:K同学啊 | 接辅导、项目定制 目录 0. 总结1. LSTM介绍LSTM的基本组成部分如何理解与应用LSTM 2. 数据预处理3. 数…

虚假星标:GitHub上的“刷星”乱象与应对之道

在开源软件的世界里,GitHub无疑是最重要的平台之一。它不仅是一个代码托管平台,也是一个社交网络,允许开发者通过“点赞”(即加星)来表达对某个项目的喜爱和支持,“星标”(Star)则成…

前端笔记----

在我的理解里边一切做页面的代码都是属于前端代码。 之前用过qt框架,也是用来写界面的,但是那是用来写客户端的,而html是用来写web浏览器的,相较之下htmlcssJavaScript写出来的界面是更加漂亮的。这里就记录我自个学习后的一些笔…

【面试题】技术场景 4、负责项目时遇到的棘手问题及解决方法

工作经验一年以上程序员必问问题 面试题概述 问题为在负责项目时遇到的棘手问题及解决方法,主要考察开发经验与技术水平,回答不佳会影响面试印象。提供四个回答方向,准备其中一个方向即可。 1、设计模式应用方向 以登录为例,未…

2025华数杯国际赛A题完整论文讲解(含每一问python代码+数据+可视化图)

大家好呀,从发布赛题一直到现在,总算完成了2025“华数杯”国际大学生数学建模竞赛A题Can He Swim Faster的完整的成品论文。 本论文可以保证原创,保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文…

关闭window10或11自动更新和自带杀毒

关闭window10或11自动更新和自带杀毒 1.关闭系统更新**修改组策略关闭自动更新****修改服务管理器关闭自动更新** 2.关闭系统杀毒 为什么需要关闭更新和杀毒 案例: #装完驱动隔一段时间就掉 #一些设置隔一段时间就重置了 #防止更新系统后有时卡 1.关闭系统更新 我…

解析OVN架构及其在OpenStack中的集成

引言 随着云计算技术的发展,虚拟化网络成为云平台不可或缺的一部分。为了更好地管理和控制虚拟网络,Open Virtual Network (OVN) 应运而生。作为Open vSwitch (OVS) 的扩展,OVN 提供了对虚拟网络抽象的支持,使得大规模部署和管理…

【ArcGIS技巧】如何给CAD里的面注记导入GIS属性表中

前面分享了GIS怎么给田块加密高程点,但是没有分享每块田的高程对应的是哪块田,今天结合土地整理软件GLAND做一期田块的属性怎么放入GIS属性表当中。 1、GLAND数据 杭州阵列软件(GLand)是比较专业的土地整理软件,下载之…

Excel中SUM求和为0?难道是Excel有Bug!

大家好,我是小鱼。 在日常工作中有时会遇到这样的情况,对Excel表格数据进行求和时,结果竟然是0,很多小伙伴甚至都怀疑是不是Excel有Bug!其实,在WPS的Excel表格中数据求和,结果为0无法正确求和的…

Spring MVC简单数据绑定

【图书介绍】《SpringSpring MVCMyBatis从零开始学(视频教学版)(第3版)》_springspringmvcmybatis从零开始 代码、课件、教学视频与相关软件包下载-CSDN博客 《SpringSpring MVCMyBatis从零开始学(视频教学版)(第3版&…

蓝桥杯备考:数据结构之栈 和 stack

目录 栈的概念以及栈的实现 STL 的stack 栈和stack的算法题 栈的模板题 栈的算法题之有效的括号 验证栈序列 后缀表达式 括号匹配 栈的概念以及栈的实现 栈是一种只允许在一端进行插入和删除的线性表 空栈:没有任何元素 入栈:插入元素消息 出…

使用Dify创建个问卷调查的工作流

为啥要使用Dify创建工作流呢?一个基于流程的智能体的实现,特别是基于业务的实现,使用Dify去实现时,通常都是一个对话工作流,当设计到相对复杂一些的流程时,如果将所有逻辑都放在对话工作流中去实现&#xf…

QT Quick QML 实例之椭圆投影,旋转

文章目录 一、前言二、演示三、部分代码与分析 QML 其它文章请点击这里: QT QUICK QML 学习笔记 国际站点 GitHub: https://github.com/chenchuhan 国内站点 Gitee : https://gitee.com/chuck_chee 一、前言 此 Demo 主要用于无人机吊舱视角的模拟&#xf…

高通,联发科(MTK)等手机平台调优汇总

一、常见手机型号介绍: ISP除了用在安防行业,还有手机市场,以及目前新型的A/VR眼睛,机器3D视觉机器人,医疗内窥镜这些行业。 下面是一些最近几年发布的,,,旗舰SOC型号: 1.联发科:天玑92…

AI的崛起:它将如何改变IT行业的职业景象?

随着人工智能(AI)的快速发展,许多人开始担忧其对IT行业的影响,担心AI的出现可能会导致大量IT从业者失业。然而,事实并非如此简单,AI的崛起将为IT行业带来深刻的变革,既有挑战,也有机…

【25考研】西南交通大学软件工程复试攻略!

一、复试内容 复试对考生的既往学业情况、外语听说交流能力、专业素质和科研创新能力,以及综合素质和一贯表现等进行全面考查,主要考核内容包括思想政治素质和道德品质、外语听说能力、专业素质和能力,综合素质及能力。考核由上机考试和面试两部分组成&a…

玩转大语言模型——langchain调用ollama视觉多模态语言模型

系列文章目录 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 langchain调用ollama视觉多模态语言模型 系列文章目录前言使用Ollama下载模型查找模型下载模型 测试模型ollama测试langchain测试加载图片加载模型…