如何列出所有表的大小(分别列出数据和索引)?

2020-08-22 21:18发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好,

我想在单独的列中列出所有表的大小(至少前1000个),数据大小和索引大小,

在DBACOCKPIT上,我只能显示 前500位,并且不能在同一列表上显示数据和索引大小。

索引大小与单表分析一起提供。

是否存在可以在SQL命令行上运行的SQL语句 此列表吗?

您能帮忙吗?

致谢

Yuksel AKCINAR

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好,

我想在单独的列中列出所有表的大小(至少前1000个),数据大小和索引大小,

在DBACOCKPIT上,我只能显示 前500位,并且不能在同一列表上显示数据和索引大小。

索引大小与单表分析一起提供。

是否存在可以在SQL命令行上运行的SQL语句 此列表吗?

您能帮忙吗?

致谢

Yuksel AKCINAR

付费偷看设置
发送
8条回答
软件心理学工程师
1楼 · 2020-08-22 21:56.采纳回答

但是您说您拥有SQL命令行...????

您可以使用:

选择前100名-或其他任何前几名

左(a.name,50)作为TableName,

左(b.name,50)作为IndexName,

c.rowcnt作为行,

c.pagecnt * 2作为DataKBytes,

c.leafcnt * 2为IndexKBytes,

c.pagecnt * 2 + c.leafcnt * 2为TotalKBytes

来自{YOURDB} .. sysobjects,

{YOURDB} .. sysindexes b,

{YOURDB} .. systabstats c

其中b.id = a.id

和c.id = a.id

和c.indid = b.indid

按3 desc排序-或结果集中的任何其他列


您可以在每个数字列上用sum()对其进行汇总,并按left(a.name,50),left(b.name,50)添加组,以使其在一张表的每一行中显示-如果您不这样做 不想按索引细分...您可能希望先运行sp_flushstats来将内存中的统计信息刷新到磁盘上-但您可能无法这样做,所以请期待不精确。


玩得开心...


梦想连接
2楼-- · 2020-08-22 21:59

嗨,

尝试以下操作:

-ts_size.sql

为a32 tru设置页面49999 lin 120

col tablespace_name

col"总GB"为999,999.9

col" GB已使用"为999,999.9

col" GB Free"为99,999.9

col" Pct Free"为999.9

col"已使用的Pct"为999.9

报告中的"总GB"总和

报告中的" GB使用量"总和

报告中" GB可用空间"的总和

报告中中断

选择A.Tablespace_Name,B.Total/1024/1024/1024"总GB",

(B.Total-a.Total_Free)/1024/1024/1024" GB已用",

A.Total_Free/1024/1024/1024" GB可用",

(A.Total_Free/B.Total)* 100个"免费Pct",

((B.Total-A.Total_Free)/B.Total)* 100个"已使用的Pct"

从( 从Sys.Dba_Free_Space

按Tablespace_Name分组选择Tablespace_Name,总和(字节)

A

,(选择Tablespace_Name,Sum(Bytes)总计

从Sys.Dba_Data_Files

按表空间名称分组)B

其中A.Tablespace_Name喜欢'ZEUS%'

并且A.Tablespace_Name = B .tablespace_Name


谢谢

Balaram

一周热门 更多>