ITPUB论坛 » SAP R/3 » 系统开发及跨应用设置 » 新手求救:ABAP中编辑select语句导致系统死机
新一届的微软MVP评选已经开始,欢迎各位推荐!
2008-7-2 15:54 hn-yb
新手求救:ABAP中编辑select语句导致系统死机

今天写了一个REPORT程序,在修改一个open sql语句后,保存程序时,系统内存使用突然加速上升最后死机,想请教各位大虾死机原因。
从任务管理器里看到系统内存由400M上升到1.5G,大概以每秒10M的速度上升
语句如下
SELECT
  RACCT                  
  SUM( HSLVT ) AS HSLVT   
  SUM( HSL01 ) AS HSL01   
  SUM( HSL02 ) AS HSL02   
  SUM( HSL03 ) AS HSL03   
  SUM( HSL04 ) AS HSL04   
  SUM( HSL05 ) AS HSL05   
  SUM( HSL06 ) AS HSL06   
  SUM( HSL07 ) AS HSL07   
  SUM( HSL08 ) AS HSL08   
  SUM( HSL09 ) AS HSL09   
  SUM( HSL10 ) AS HSL10   
  SUM( HSL11 ) AS HSL11   
  SUM( HSL12 ) AS HSL12   
  SUM( HSL13 ) AS HSL13   
  SUM( HSL14 ) AS HSL14   
  SUM( HSL15 ) AS HSL15   
  SUM( HSL16 ) AS HSL16   
INTO TABLE IT_FAGLFLEXT
FROM FAGLFLEXT
WHERE  RYEAR = P_GJAHR1   
  AND RPMAX = LI_RPMAX   
  AND RLDNR = CS_RLDNR   
  AND RRCTY = CS_RRCTY   
  AND RACCT IN S_RACCT   
  AND BUKRS = P_BUKRS     
  AND RBUSA IN W_IT_GSBER
GROUP BY RACCT.

※ FAGLFLEXT表数据量比较大

2008-7-2 16:40 justforregister
你真牛逼

2008-7-2 17:20 dreamgift
哈哈哈哈   看的我很想笑.

2008-7-2 17:26 hn-yb
补充一下

死机一段时间之后,SAP系统弹出内存不足的对话框,并且出现运行时错误的系统信息,
想抓个图但是内存不足没有成功,大概看了一下错误是“raise_exception",
然后再看任务管理器,SAP程序使用内存大概只有100M,所有的任务占用内存合计大概400M
但是显示内存使用情况是1.5G,其余的1个G左右的内存不知道在哪里,关闭SAPGUI也一样
是不是在ABAP 编辑器里面,那些OPEN SQL语句会连接数据库,不是很懂,希望有大虾给解释一下原因

2008-7-2 17:31 tieshou444
-,-

2008-7-2 17:34 hn-yb
to 2楼 和 3楼

本人学习ABAP两个月,刚入门,这个语句如果写的有错误或者问题的话 还请指教

2008-7-2 17:59 dreamgift
我知道的最好是不直接边查询边求和.

先存到内表(内表要设置主键)  

然后  COLLECT ITB INTO ST.

这样性能应该会好点.   说的不对请见谅.

2008-7-2 18:19 hn-yb
我们老师给我们的建议是 sum max 在DB里做 比 在ABAP里做要好,开发练习程序时也差不多可以验证这一点

2008-7-3 15:19 caisandong
回复 #1 hn-yb 的帖子

在做select时,尽量少用sum,你使用了这么多的sum,不慢才怪.

2008-7-3 15:27 caisandong
回复 #1 hn-yb 的帖子

在做select时,尽量少用sum,你使用了这么多的sum,不慢才怪.

2008-7-3 16:10 ryq0000
[quote]原帖由 [i]dreamgift[/i] 于 2008-7-2 17:59 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10833239&ptid=1015477][img]http://www.itpub.net/images/common/back.gif[/img][/url]
我知道的最好是不直接边查询边求和.

先存到内表(内表要设置主键)  

然后  COLLECT ITB INTO ST.

这样性能应该会好点.   说的不对请见谅. [/quote]
应该是这样用的.

2008-7-8 11:27 hikarulea
[quote]原帖由 [i]hn-yb[/i] 于 2008-7-2 18:19 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10833479&ptid=1015477][img]http://www.itpub.net/images/common/back.gif[/img][/url]
我们老师给我们的建议是 sum max 在DB里做 比 在ABAP里做要好,开发练习程序时也差不多可以验证这一点 [/quote]

速度是快了,但会增加服务器内存使用量。
性能不光是体现在运行速度上。

2008-7-8 11:53 xiebinren
[quote]原帖由 [i]hn-yb[/i] 于 2008-7-2 18:19 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10833479&ptid=1015477][img]http://www.itpub.net/images/common/back.gif[/img][/url]
我们老师给我们的建议是 sum max 在DB里做 比 在ABAP里做要好,开发练习程序时也差不多可以验证这一点 [/quote]
把服务器给拖死了

2008-7-8 16:52 ryq0000
楼上有人给出方法了.

2008-7-9 09:11 VagrantLee
[quote]原帖由 [i]caisandong[/i] 于 2008-7-3 15:27 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10842962&ptid=1015477][img]http://www.itpub.net/images/common/back.gif[/img][/url]
在做select时,尽量少用sum,你使用了这么多的sum,不慢才怪. [/quote]

同意@

页: [1]


Powered by ITPUB论坛