查看某个库和某张表的大小:# sqlcmd -S 192.168.0.1 -U SA -P 'XXXXXXX'1> use test2> go已将数据库上下文更改为 'test'。1> EXEC sp_spaceused2> godatabase_name database_size unallocated space-------------------------------------------------------------------------------------------------------------------------------- ------------------ ------------------test 358392.19 MB 61140.89 MB reserved data index_size unused ------------------ ------------------ ------------------ ------------------303655216 KB 151521704 KB 150348640 KB 1784872 KB 1>2>3>4>5> EXEC sp_spaceused 'owe_test';6> goname rows reserved data index_size unused -------------------------------------------------------------------------------------------------------------------------------- -------------------- ------------------ ------------------ ------------------ ------------------owe_test 23044925 90553168 KB 28877832 KB 61365144 KB 310192 KB 1> 查询test数据库中的所有表的大小 方法1: use test 将数据库上下文更改为 'test'。 CREATE PROCEDURE [dbo].[sp_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 sp_UpdateTableSpaceInfo; go SELECT * FROM temp_tableSpaceInfo; go 方法2: use test 将数据库上下文更改为 'test'。 declare @table_spaceused table (name nvarchar(100) ,rows int ,reserved nvarchar(100) ,data nvarchar(100) ,index_size nvarchar(100) ,unused nvarchar(100) ) insert into @table_spaceused (name,rows,reserved,data,index_size,unused ) exec sp_MSforeachtable @command1='exec sp_spaceused ''?''' select * from @table_spaceused; go
SQL SERVER 2012查询数据库和所有表的大小方法汇总
来源:这里教程网
时间:2026-03-02 12:08:23
作者:
编辑推荐:
- SQL SERVER 2012查询数据库和所有表的大小方法汇总03-02
- 滚动加权平均指标的可视化03-02
- 大家好03-02
- javascript获取当前时间代码分享03-02
- 统信UOS终端快捷键及使用教程03-02
- SQLServer用函数实现对字符串按照特定字符进行拆分03-02
- 传奇道士宝宝攻击跟道术有关吗_传奇道士宝宝伤害跟什么有关03-02
- 美创运维日记|SQL Server安装后,需立即修改的三个参数03-02
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 统信UOS终端快捷键及使用教程
统信UOS终端快捷键及使用教程
26-03-02 - 传奇道士宝宝攻击跟道术有关吗_传奇道士宝宝伤害跟什么有关
传奇道士宝宝攻击跟道术有关吗_传奇道士宝宝伤害跟什么有关
26-03-02 - 美创运维日记|SQL Server安装后,需立即修改的三个参数
美创运维日记|SQL Server安装后,需立即修改的三个参数
26-03-02 - 传奇活力戒指有什么用处?
传奇活力戒指有什么用处?
26-03-02 - 统信uos扫描软件驱动安装及使用教程
统信uos扫描软件驱动安装及使用教程
26-03-02 - 利用无代码开发平台开发应用程序有什么好处
利用无代码开发平台开发应用程序有什么好处
26-03-02 - 关于SQLServer的tempdb的数据文件暴增问题(1)
关于SQLServer的tempdb的数据文件暴增问题(1)
26-03-02 - SQLServer数据库中了勒索病毒加密,扩展名改为Globeimposter-Alpha666qqz
- What is the Average Cost of Doing a Diploma?
- 天九共享:挖掘闲置资源价值,催生全新商业模式
天九共享:挖掘闲置资源价值,催生全新商业模式
26-03-02
