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

2020-08-22 21:18发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好, 我想在单独的列中列出所有...

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

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


你好,

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

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

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

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

您能帮忙吗?

致谢

Yuksel AKCINAR

8条回答
软件心理学工程师
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来将内存中的统计信息刷新到磁盘上-但您可能无法这样做,所以请期待不精确。


玩得开心...


一周热门 更多>