RSRT中的查询执行错误:ORA-04036:超出了PGA_AGGREGATE_LIMIT

2020-08-19 12:38发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 在RSRT中执行查询时,...

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

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


嗨,

在RSRT中执行查询时,它将进入SAPLRS_EXCEPTION的调试器模式。 在进一步执行时,查询的输出显示以下消息,但找不到适用的数据:

-ORA-04036:实例使用的PGA内存超过了PGA_AGGREGATE_LIMIT

-SQL错误:4036

-读取数据时出错; 可以导航

->>行:69 Inc:NEXT_PACKAGE进程:CL_SQL_RESULT_SET

我将查询作为输入/选择标准仅运行1天,但查询中的材料限制有限。

我如何解决这个问题?

谢谢

4条回答
南山jay
2020-08-19 12:46 .采纳回答

ORA-04036:实例使用的PGA内存超过了PGA_AGGREGATE_LIMIT

12c随附了PGA_AGGREGATE_LIMIT参数,它为实例占用的PGA数量设置了硬限制。

程序全局区域(PGA)是内存中的区域,会话将这些区域用于与会话相关的活动(如排序)。 如果会议要求,则11g中的PGA可以不受限制地增长。 通常情况下,不可调整的进程会消耗大量的PGA,这可能会影响数据库的整体内存使用。

因此在12c中引入了pga_aggregate_limit,从而限制了pga的增长。

根据Oracle文档:

在Oracle Database 12c中,一个名为PGA_AGGREGATE_LIMIT的新参数对实例占用的PGA数量设置了硬限制。 当该实例中所有会话占用的总PGA超过限制时,Oracle会终止拥有最不可调的PGA内存的会话,从而释放该会话拥有的所有PGA内存。

如果您遇到此错误消息,则有2个选项:

选项1:

将pga_aggregate_limit的值设置为0,该参数将不具有任何 impact.It 的行为 pre12c数据库:

ALTER SYSTEM SET PGA_AGGREGATE_LIMIT = 0 SID ='*'SCOPE = BOTH;

选项2:

如果服务器上有足够的物理内存,请将此值设置为更高的值:

ALTER SYSTEM SET PGA_AGGREGATE_LIMIT =≠w_value SID ='*'SCOPE = BOTH;

一周热门 更多>