DBACOCKPIT中的数据总计与已使用总计与已使用数据总计

2020-08-16 20:55发布

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

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


大家好,

我想知道dbacockpit中几个空间使用信息之间的区别是什么。 我检查了文档,并对启用/禁用压缩和重组重建进行了一些测试。 但是我无法确切得到以下关键数字的定义和区别:

  • 保留总数
  • 已用总计
  • 数据总计
  • 数据使用总计

以下是dbacockpit中我们系统之一的两个屏幕截图:

表EDID4:


表AGR_HIERT:

我不清楚为什么"数据已使用总计"与"已使用总计"有如此大的差异。 对于一张桌子,它要小得多,而对于另一张桌子,它要大得多。

有人对不同关键指标有很好的/详细的定义吗?

感谢和问候

托马斯

edid4.jpg (81.4 kB)

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

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


大家好,

我想知道dbacockpit中几个空间使用信息之间的区别是什么。 我检查了文档,并对启用/禁用压缩和重组重建进行了一些测试。 但是我无法确切得到以下关键数字的定义和区别:

  • 保留总数
  • 已用总计
  • 数据总计
  • 数据使用总计

以下是dbacockpit中我们系统之一的两个屏幕截图:

表EDID4:


表AGR_HIERT:

我不清楚为什么"数据已使用总计"与"已使用总计"有如此大的差异。 对于一张桌子,它要小得多,而对于另一张桌子,它要大得多。

有人对不同关键指标有很好的/详细的定义吗?

感谢和问候

托马斯

edid4.jpg (81.4 kB)
付费偷看设置
发送
5条回答
昵称总是被占用
1楼 · 2020-08-16 21:42.采纳回答

托马斯,你好

这些指标背后的计算如下:

预留总数=预留(LOB)+预留表

已用总计=已用(LOB)+已使用表

数据总计=数据(LOB)+数据表

未使用总计=预留总计-已使用总计

已利用总数=数据(LOB)+(数据表*空间利用率)

如您所见,"利用率总计"和"数据总计"之间的差异是空间利用率。 在后端将其计算为derived_stat(,0,partitionid,'sput')。

现在通常这个系数小于1.0。 但是,如果长时间没有在表上运行更新统计信息,则可能会出现此因子超过1.0的情况,最终导致"已使用的总计"值高于"数据总计"。

例如,如果您可能想知道为什么有时数据(LOB)少于使用的(LOB),那是因为要计算数据,我们使用ASE函数data_pages(...)vs used_pa​​ges(... )。 对于used_pa​​ges(..),ASE将考虑用于内部结构的页面,而data_used(...)将这些页面排除在外。

亲切的问候,

Reza

SKY徐
2楼-- · 2020-08-16 21:26

Hi Diego,

感谢您的链接。 我已经检查了它们,但是它们没有解释"数据已使用总计"。 我想知道为什么它对于一个表比"数据总计"大得多,而对另一表比"数据总计"小得多。 我找不到"数据已使用总计"的正确定义。

最诚挚的问候
托马斯(Thomas)

土豆飞人
3楼-- · 2020-08-16 21:25

注意:我不使用DBACOCKPIT。

假设找不到任何文档来解释' Utilized 的值,下一步是查看DBACOCKPIT从何处获取数据。

注意:以下假设ASE已配置为收集MDA表数据。

在 一个 isql 会话运行以下命令:

从master..monSysSQLText选择*,其中SPID = 9999999-应清除该会话的表队列
 走
 waitfor延迟" 00:00:20"-根据需要进行调整,以确保整个DBACOCKPIT流程在此窗口内以及下一个"选择"之前运行
 走
 从master..monSysSQLText按SPID,KPID,BatchID,SequenceInBatch顺序选择*
 go 

上面的命令正在运行" waitfor delay "时,请运行生成空间报告的DBACOCKIPT进程。

注意:如果这 是一个活动的ASE实例,那么第二个' select '可能会生成大量数据,因此您需要将所有输出定向到文件中。

现在,这只是一个问题 查看为DBACOCKPIT调用的查询和/或存储的过程而捕获的输出(并希望ASE捕获)。 显然,如果调用了存储的proc,则有必要查看存储的proc的源代码。 主要目标是检查查询以找出' Utilized '值的来源。

注意:假定DBACOCKPIT不在解析查询输出并进行计算, 内存,即" 已使用"值。

哎,真难
4楼-- · 2020-08-16 21:45

检查两个表的锁定方案。

对于APL表,聚集索引使用叶级数据页,这可能会混淆空间使用量计算。

类似地,一旦分配/使用LOB列,将始终使用至少1个现存值。

如果可以连接到ASE,请使用以下命令为您比较一些数字

exec sp_spaceused

exec sp_spaceused ,1提供索引空间的使用。

保留的空间是分配的空间(分配量是一个现存的= 8页)

已使用:基于页面的实际使用量 已使用+分配所需的系统页面

未使用:基于空闲页面

对于上面的大多数表空间管理来说都是足够的。

Avinash

一周热门 更多>