楼主: lizhifang649

性能优化 for all entries in

[复制链接]
论坛徽章:
131
乌索普
日期:2017-09-26 13:06:30马上加薪
日期:2014-11-22 01:34:242014年世界杯参赛球队: 尼日利亚
日期:2014-06-17 15:23:23马上有对象
日期:2014-05-11 19:35:172014年新春福章
日期:2014-04-04 16:16:58马上有对象
日期:2014-03-08 16:50:54马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14
11#
发表于 2013-6-4 07:37 | 只看该作者
lizhifang649 发表于 2013-6-4 00:51
现在做维护,主要优化前期上线时开发的报表。 发现性能慢。第一先优化SQL语句(for all entries in占大多数 ...

看你了你的疑问。。。。这水平也能做调优。。。。。

使用道具 举报

回复
论坛徽章:
18
操作系统板块每日发贴之星
日期:2005-07-28 01:01:51沸羊羊
日期:2015-03-04 14:43:43马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:072011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB9周年纪念徽章
日期:2010-10-08 09:32:272009新春纪念徽章
日期:2009-01-04 14:52:282008新春纪念徽章
日期:2008-02-13 12:43:03ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
12#
发表于 2013-6-4 10:55 | 只看该作者
lizhifang649 发表于 2013-6-4 00:51
现在做维护,主要优化前期上线时开发的报表。 发现性能慢。第一先优化SQL语句(for all entries in占大多数 ...

本质上还是一样的,写成函数和直接到数据库去读取数据,只要你是放在loop中执行的话,都是I/O次数太多。直接写成函数和由sap的open sql帮助解释下,这个翻译过程所耗用时间几乎可以无视不计。

对于机械硬盘来说,磁盘启动、寻道、停车,无论你每次取数多少,这些所费时间是都是必不可少的。如果你I/O次数太多,不定的磁盘启动、停止。所以性能不可避免的就慢下来了。

就打个比方,你雇一个人帮你搬书,这个司机是按照每趟收费的,司机不关心每趟搬多少东西,只要他的车可以装的下,每趟100元,你愿意:
1. 让这个司机每次搬书5本,搬运2000趟,
2. 还是搬1趟,一次搬10000本。

进行性能调优:
1. 首先看I/O次数如何降低;(尽量从每个数据表取数,你只能取一次)
2. 提升每次I/O的效率;(每个SQL的执行效率,是否超过10万的数据,在查询条件中却没有用到任何主键和索引,也是不可接受的)
3. 提升CPU的效率,尽量把可以使用read table 结合binary search的来替换loop。避免两次loop循环。
4. 减少内存空间的占用(从数据表选择的字段不不要的不要选,选择数据行,尽量精确,在保证IO次数低的条件下,尤其是是报表程序,选择数据库表的那些查询条件的组合,先查什么表,后查询什么表,对于内存的占用可以差别轻易超过1000倍,对于一些条件可以强制让用户必须等)。
5. 其他的辅助手段。比如另建汇总表的表。

以上优化的重要性,按照1、2、3、4、5的次序来。



使用道具 举报

回复
论坛徽章:
121
紫蛋头
日期:2013-07-02 19:27:392014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:112014年世界杯参赛球队: 波黑
日期:2014-06-07 00:05:53喜羊羊
日期:2015-03-04 14:49:392015年新春福章
日期:2015-03-06 11:57:31
13#
发表于 2013-6-4 12:21 | 只看该作者
学习。

使用道具 举报

回复
求职 : SAP实施
论坛徽章:
261
土豪章
日期:2018-07-10 16:19:05ITPUB18周年纪念章
日期:2018-09-17 10:09:49ITPUB18周年纪念章
日期:2018-09-17 10:12:57妮可·罗宾
日期:2018-10-28 13:07:10ITPUB18周年纪念章
日期:2018-11-13 15:31:24ITPUB18周年纪念章
日期:2018-11-13 15:40:4519周年集字徽章-庆
日期:2019-09-06 18:30:1219周年集字徽章-19
日期:2021-02-03 16:43:4820周年集字徽章-年	
日期:2023-07-21 18:25:26
14#
发表于 2013-6-4 14:19 | 只看该作者
kevincml 发表于 2013-6-3 13:12
性能优化, 必读BC490教材
里面例子举了很多
主要就是AP 的CPU, Memory,及 DB存取的调整

有没有连接可以下载??

使用道具 举报

回复
论坛徽章:
1
ITPUB9周年纪念徽章
日期:2010-10-08 09:32:26
15#
 楼主| 发表于 2013-6-4 22:26 | 只看该作者
sydongsun 发表于 2013-6-4 10:55
本质上还是一样的,写成函数和直接到数据库去读取数据,只要你是放在loop中执行的话,都是I/O次数太多。直 ...

非常感谢你的回复。 我虽然刚刚踏入SAP这个行业,我会不断努力的。

使用道具 举报

回复
论坛徽章:
42
优秀写手
日期:2014-04-04 06:00:15奥迪
日期:2013-08-02 09:05:50技术图书徽章
日期:2014-05-13 10:13:15雪铁龙
日期:2013-09-27 17:12:25三菱
日期:2013-11-07 11:29:352013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:152010年世界杯参赛球队:阿根廷
日期:2010-07-07 13:46:09蛋疼蛋
日期:2013-06-06 10:40:32鲜花蛋
日期:2011-09-06 08:37:00
16#
发表于 2013-6-4 22:31 | 只看该作者
以前公司的一堆报表都用FOR ALL ENTR,,,想不通他们

使用道具 举报

回复
论坛徽章:
1
ITPUB9周年纪念徽章
日期:2010-10-08 09:32:26
17#
 楼主| 发表于 2013-6-4 22:37 | 只看该作者
houbao408 发表于 2013-6-4 14:19
有没有连接可以下载??

BC490_EN_46C_FV.pdf (8 MB, 下载次数: 262)




使用道具 举报

回复
求职 : SAP实施
论坛徽章:
261
土豪章
日期:2018-07-10 16:19:05ITPUB18周年纪念章
日期:2018-09-17 10:09:49ITPUB18周年纪念章
日期:2018-09-17 10:12:57妮可·罗宾
日期:2018-10-28 13:07:10ITPUB18周年纪念章
日期:2018-11-13 15:31:24ITPUB18周年纪念章
日期:2018-11-13 15:40:4519周年集字徽章-庆
日期:2019-09-06 18:30:1219周年集字徽章-19
日期:2021-02-03 16:43:4820周年集字徽章-年	
日期:2023-07-21 18:25:26
18#
发表于 2013-6-5 08:10 | 只看该作者
lizhifang649 发表于 2013-6-4 22:37

thanks!!!

使用道具 举报

回复
论坛徽章:
0
19#
发表于 2013-6-5 10:11 | 只看该作者
你是否有去检查用for all entries in之前是否有判断内表为空???  原来的关键代码贴出来看看。。。

使用道具 举报

回复
论坛徽章:
11
ITPUB元老
日期:2013-08-26 10:43:08ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:37ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28ITPUB9周年纪念徽章
日期:2010-10-08 09:31:21ITPUB8周年纪念徽章
日期:2009-09-27 10:21:212012新春纪念徽章
日期:2012-01-04 11:49:542011新春纪念徽章
日期:2011-02-18 11:42:472010新春纪念徽章
日期:2010-03-01 11:07:21
20#
发表于 2013-6-5 13:24 | 只看该作者
for all entries in  可以转换成  Range Table , 这样对于连续的数据内容可以用BT来定义,所以效率会更高啊。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表