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

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来将内存中的统计信息刷新到磁盘上-但您可能无法这样做,所以请期待不精确。


玩得开心...


微wx笑
2楼-- · 2020-08-22 21:44

Hello Gaurav,

感谢" SQL命令行"。

但是无法运行sp_ *过程。

结果是这样的。

myhost:1> sp_spaceused
myhost:2> go

不允许执行命令类型


问候,

Yuksel AKCINAR

My梦
3楼-- · 2020-08-22 21:53

您可以使用isql进行连接并手动运行以下命令:

1>使用database_name

2> go

1> sp_spaceused

2>继续


希望这会有所帮助


〜 Gaurav

吹牛啤
4楼-- · 2020-08-22 22:00

您好迪帕克,

谢谢您的回答。

我无法删除500。您必须选择50,100或 500。

您能描述如何删除限制吗?

在第一个屏幕上也没有索引大小。 为了获得表的索引大小,您必须转到表的详细信息。 这是另一个遗漏点。

关于,

Yuksel AKCINAR

风早神人
5楼-- · 2020-08-22 21:57

如何使用新的(且难以使用的)sp_spaceusage系统进程 (请注意,"用法"不是"二手")。 我发现它真的很难使用,因为参数是可变的(您需要根据参数列表中的较早参数指定不同类型的参数,并且它们不使用智能默认值),并且它们在帮助页面中并未完全定义。 同样,当输出显示" Pages"时,这是错误的。 无论您使用什么单位,输出列标题都会说" Pages"(默认单位是kb,与列标题arrgghh不匹配)。 无论如何,这是一个例子:

 [131] MYSERVER.sybsystemprocs-12:09:12-1> sp_spaceusage'显示摘要','数据库';
 结果集中的所有页数均以" KB"为单位。
 -我的笔记:忽略列标题中的"页面"。 应该说KB。
  TotalPages UsedPages FreePages PctUsedPages PctFreePages DataPages IndexPages LOBPages PctData PctIndex PctLOB
  ---------- ---------- --------- ------------ ---------  ------------ ---------- -------- ------- -------- ----  -
  204800.000 133360.000 71440.000 65.12 34.88 125824.000 6240.000 48.000 94.35 4.68 0.04


 (影响1行)
  TableName TotalPages UsedPages CLRPages FreePages PctUsedPages PctFreePages
  --------- ---------- --------- -------- --------- -----  ------- ------------
  系统日志204800.0 816.0 0.0 55744.0 0.39 27.21


 [147] MYSERVER.sybsystemprocs-12:23:34-1> sp_spaceusage'使用unit = mb','table','%','where 1 = 1','RsvdPages desc排序'来显示摘要。
 警告:结果集中的某些输出列值可能不正确。 运行" UPDATE [TABLE] STATISTICS"可能有助于纠正它们。
 结果集中的所有页数均以" mb"为单位。
 -我的笔记:忽略列标题中的"页面"。 应该说mb。
  OwnerName TableName类型UsedPages RsvdPages ExpRsvdPages PctBloatRsvdPages
  --------- ---------------------- ----- ---------- ----  ---------------- ------------ -----------------
  dbo系统程序DATA 113.953125 115.843750 56.25 105.94
  dbo系统评论数据7.890625 10.046875 7.375 36.23
  dbo系统程序索引3.984375 4.203125 2.25 46.47
  dbo系统注释索引.796875 0.875000 .5 42.86
  dbo sysusers索引.140625 0.750000 .375 50.00
  dbo sysreferences索引.140625 0.750000 .375 50.00
  dbo syspartitions索引.140625 0.625000 .375 40.00
  dbo sysjars索引.09375 0.500000 .25 50.00
  dbo systypes索引.09375 0.500000 .25 50.00
  dbo sysxtypes索引.09375 0.500000 .25 50.00
  dbo系统指标INDEX .09375 0.500000 .25 50.00
  dbo sysqueryplans索引.09375 0.500000 .25 50.00
  dbo sysconstraints索引.09375 0.484375 .25 48.39
  dbo系统列数据.359375 0.375000 1.5 -75.00
  dbo sysobjects索引.15625 0.375000 .25 33.33
  dbo sysobjects数据.203125 0.359375 .25 43.75
  dbo syskeys索引.046875 0.250000 .125 50.00
  dbo systypes数据.03125 0.250000 .125 100.00
  dbo sysroles指数.046875 0.250000 .125 50.00
  dbo sysdepends索引.078125 0.250000 .125 50.00
  dbo systabstats数据.03125 0.250000 .125 100.00

 
骆驼绵羊
6楼-- · 2020-08-22 21:56

@Balram,听起来像oracle ...

SAP小菜
7楼-- · 2020-08-22 21:54

Hi Yuksel,

我想您可能需要删除限制值 500,并再次从dbacockpit执行报告以获取表和索引的完整列表。

问候

Deepak Kori

一周热门 更多>