暂无图片
分享
周伟
2023-07-27
关于执行计划中的 OMem | 1Mem | Used-Mem 的意思。

请教各位专家,

关于执行计划中的 OMem | 1Mem | Used-Mem 各自代表的是什么意思呢?

网上有些文章解释,也查看过官方手册,但感觉都模模糊糊的不是很清楚。

大概意思是: OMem 表示这一步的操作预估会消耗多少PGA; 1Mem 表示当PGA太小,会发生数据溢出到磁盘进行交换,这个动作也需要消耗内存来调度,表示这个内存消耗的预估值,如果只需要磁盘交换一次,就表示one-pass; Used-Mem 表示这步操作实际消耗掉了多少PGA。

这个理解正确么?特别是关于 Used-Mem 的理解,他下面的数字格式通常是: 364M (0) 这样的。这个到底是什么意思呢?是说这一步操作总共消耗了364M的PGA,发生了0次磁盘交换(括号里面的数字表示磁盘交换次数,如果为0的话就表示实际上并没有发生磁盘交换的意思么?)

有哪位专家能解答一下,理解这个主要是用于参考PGA的设置是否合理。

收藏
分享
4条回答
默认
最新
PiscesCanon


暂无图片 评论
暂无图片 有用 0
周伟
题主
2023-07-27
我就是对这个有疑惑, used-mem 下面数字后面的括号,里面的数字我见得最多的就是0 ,这个0表示没有发生磁盘交换么,如果没有发生磁盘交换,为什么不显示OPTIMAL而是0呢?
周伟

另外,1Mem下面的数字“表示单次写磁盘所需要的内存大小”,那么是不是意思为,当后面的Used-Mem 下面数字后面括号里面的数字不为0的时候,比如 1Mem 显示为10M, Used-Mem 显示为 50M(3) ,就表示这个操作总共消耗了50M PGA,其中发生磁盘交换次数为3次,这3次交换消耗的内存为: 10M X 3 = 30M,也就是说总共50M的消耗,其中磁盘交换消耗了30M,然后剩下的20M就是其它操作比如内存排序,内存hash计算消耗掉的内存?

同时,如果Used-Mem 括号里面的数字如果为0的话,就表示没有发生磁盘交换,因此前的1Mem实际上是预估,并不会一定发生,而当括号里面的数字大于0,实际上就意味着PGA过小了的意思?

暂无图片 评论
暂无图片 有用 0
redgame
这个值也仅供参考
暂无图片 评论
暂无图片 有用 0
周伟
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏