SAP ABAP 性能优化技巧 — 选择条件

在从数据库中读取数据时最好直接在select语句中加入选择条件,从而直接限制筛选出符合条件的数据,而不建议读出所有的数据然后用ABAP代码来过滤筛选。

例如,不建议使用:

Select * from zflight.

Check : zflight-airln = ‘LF’ and zflight-fligh = ‘BW222’.

Endselect.

建议使用:

Select * from zflight where airln = ‘LF’ and fligh = ‘222’.

Endselect.

这里还要提醒的一点是关于 select *。通常这是一个懒惰的做法,程序员使用select * 的时候其实可能只有一两个字段需要选择。这实际上会显著减慢程序的运行速度,并在整个系统上加载不必要的负担。当应用服务器将这个请求发送到数据库服务器的时候,数据库服务器不得不将每一行数据的整个结构都发送回应用服务器。这样既浪费CPU,又浪费网络带宽资源,尤其是在表结构很大的时候。

因此建议只选择那些需要的字段,以便使数据库服务器只传递少量数据回来。

另外还建议尽量避免将选择的数据字段逐个写入本地变量中,这也会加重服务的负担。比较好的做法应该是直接将读取的数据写入内表(internal table)中,例如:

Select * from zflight into table it_flights where airln = ‘LF’ and fligh = ‘222’.


返回文章目录

SAP ABAP 性能优化技巧

本文译自theSpot4SAP.com的SAP ABAP Performance Tuning Tips & Tricks Introduction

性能优化的必要性

ABAP是SAP编程中的通用语言。在多数工程项目中,工作的重点是尽快组建一支ABAP程序员队伍,将设计文档交给他们,然后敦促他们在规定期限内交出ABAP程序。

在这种期限的压力之下,往往程序的效率就被忽略了。一个有效的程序应该能够在有限的时间内产生要求的输出,时间的长短取决于程序的复杂度,而不是像我们常常听到的那样,开始运行一个程序然后午饭回来后再看结果。

也许以上说法有些夸张,但一个性能优化的ABAP程序的确可以为终端用户节省时间,从而增加用户的产量,反过来也取悦了用户和管理者。

这个教程着重介绍各种性能优化的技巧使得ABAP的程序可以更加有效的完成它们的工作。教程面向已熟练掌握ABAP各种概念和语法的编程人员。

说明:程序的性能很多时候也是受到硬件的限制,这些不在本文的讨论范围之内。

=======================================================================

本教程分为以下几章,每一章介绍一种技巧:

VC6.0中重载操作符函数无法访问类的私有成员

在 C++ 中,操作符(运算符)可以被重载以改写其实际操作。同时我们可以定义一个函数为类的朋友函数(friend function)以便使得这个函数能够访问类的私有成员,这个定义通常在头文件中完成。

在Visual C++中定义一般的函数为朋友函数通常是没有问题的。然而对某些重载操作符的函数,即使我们将它们定义为类的朋友函数,VC的编译器仍然会显示出错信息,认为这些朋友函数无权访问类的私有成员。我认为这应该是VC6.0的bug。 More… »

以指针或reference为参数的C++函数定义与调用对照表

初学者不易建立清晰的指针和reference概念,总结这个表以供快速参考:

假设有对象定义:
MyObjectType obj1;

1. 值传递:
如果函数定义为:
void myFunction( MyObjectType obj);

函数调用:
myFunction(obj); //函数以外对象obj的值不会 改变

2. reference传递:
如果函数定义为:
void myFunction( MyObjectType &obj);

函数调用:
myFunction(obj); //函数以外对象obj的值 改变

3. 指针传递:
如果函数定义为:
void myFunction( MyObjectType *obj);

函数调用:
myFunction(&obj); //需要dereference(&), 函数以外对象obj的值 改变

要了解更多关于C++指针的概念请阅读C++基础教程指针篇

浅谈Web Services 三要素

Web Services 现在是个热门话题,与之相关的XML, XSLT, SOAP, UDDI, WSDL等等词汇也都成了热门关键字。究竟这些技术是如何被集成运用到一起的,它们在Web Services中所扮演的角色又如何,在Connie Smith的一篇关于PMIF的论文中我居然发现了一段关于Web Services的介绍非常简洁清晰,在这儿与大家分享一下。

一个Web Service是一个被设计用来支持机器与机器之间通过网络进行跨平台交互操作的软件系统。Web Services是封装完整的应用模块,并自带描述信息,可以在网路上发布,可以被定位查找,可以通过Web被调用。

要访问一个Web Service,用户必须知道这个服务的定义(比如接口信息),而不需要知道它是怎样实现的(比如用什么语言写的)。因此,客户软件和服务器软件可以是使用不同语言编写的,这就是互操作性(interoperability)。

在Web Service架构中有三个主要元素,全部是基于XML(eXtensible Markup Language):SOAP(Simple Object Access Protocol) 、WSDL(Web Services Description Language) 和 UDDI(Universal Description, Discovery, and Integration)。

SOAP直译是简单对象访问协议,是访问Web Services的标准协议,它使得不同应用软件之间进行信息交换和通信成为可能。它是一种基于XML的通信和远程过程调用协议,在现有的多种传输协议上都可以工作,例如 TCP,HTTP,SMTP等。一个SOAP消息是一个XML文件,具有四个基本组成部分:信封(envelope)、信头(header)、内容(body)和出错(fault)。

WSDL也是一种基于XML的语言,直译是网络服务描述语言,它描述了一个Web Service所提供的操作以及它的接口定义。

UDDI是一个Web Service的注册登记处,用户通过它可以查找到当前已经发布的Web Service有哪些及在哪里可以找到。

有了这些技术,我们现在可以定义:一个Web Service是一个发布在网络上的,可以通过SOAP访问的,由WSDL描述的,在UDDI注册登记的网络服务。

怎样才能把自己的网站做好

我从这里转来的,的确是篇好文,很有道理,不只针对建站,对所有business都值得借鉴。

——————————————————————————————

1. 250定律
拉德认为:每一位顾客身后,大体有250名亲朋好友。如果您赢得了一位顾客的好感,就意味着赢得了250个人的好感;反之,如果你得罪了一名顾客,也就意味着得罪了250 名顾客。 在你的网站访客中,一个访客可能可以带来一群访客,任何网站都有起步和发展的过程,这个过程中此定律尤其重要。

2. 达维多定律
达维多认为,一个企业要想在市场上总是占据主导地位,那么就要做到第一个开发出新产品,又第一个淘汰自己的老产品。 国内网站跟风太严重,比如前段时间的格子网,乞讨网,博客网,一个成功了,大家一拥而上。但实际效果是,第一个出名的往往最成功,所以在网站的定位上,要动自己的脑筋,不是去捡人家剩下的客户。同理,买人家出售的数据来建站效果是很糟糕的。 More… »

从Java到C++ — 对比Java与C++编程的不同

原作:Cay Horstmann 英文原文

翻译:Aqua  prglab.com

注:很多程序员包括本人在内都是先学会的Java,然后才学的C++,其实C++与Java有很多相似和互通之处,有相当的Java知识可以对应转化到C++概念,从而帮助我们快速上手。这篇文章介绍的内容就对从Java向C++转变很有帮助,所以翻译推荐给有同样需要的朋友。翻译中加入了本人的理解,不完全是全文照搬。有不明或异议,请参考原文,或留言讨论。还是那句话,推荐多读原版资料。

学习怎样从一种编程语言转移到另一种编程语言是今日的程序员必须面对的现实,还好,C++和Java有很多共同的特点,所以从Java转到C++就容易许多。C++比Java复杂很多,本文并没打算涵盖所有C++的功能。但是如果你能够熟练掌握本文中的所有知识点,也足够有效的使用C++了。 More… »

推荐一本Java处理XML的书

XML是现在程序员必备的技能了,有次面试就被问到有没有写过处理XML的程序,用的是什么。记得以前最常用的DOM parser是Apache的Xcerces,在Java 1.4以后,Java标准中有了自己的处理XML的API,叫做JAXP

Elliotte Rusty Harold的这本书Processing XML with Java详细介绍了如何使用Java编程语言处理XML文档,是一本实用而且综合的指南与教程。书中简要概述了 XML基础,包括XML语法、DTD、模式、有效性,样式单和XML协议XML-RPC、SOAP与RSS。本书的核心内容是深入介绍了Java编程人员用Java生成与操纵XML文档时所用的关键XML API,包括SAX、DOM(文档对象模型)和JDOM。此外,还介绍了这些核心API的许多重要补充,包括XPath,XSLT,TrAX与JAXP,是所有需要使用XML的Java编程人员的宝贵参考资料。

现在这本书的英文版全文已经在线发布在XML的资源网站Cafe con Leche。本书也有中文译本,名为《Java语言与XML处理教程:SAX,DOM,JDOM,JAXP与TrAX指南》

JavaScript入门教程编写完成

JavaScript是Web的脚本语言。成千上万的网页使用JavaScript来进行优化设计、验证表格、检查浏览器、生成cookie 等等等等工作。JavaScript 可以说是internet上最流行的脚本语言,也是目前流行的网络开发技术AJAX的基础,可以说是每个网站开发人员的必备技能。

实际上JavaScript十分简单易学,为帮助大家学习,特编写此JavaScript入门教程,教程十分基础,针对新手,即使没有编程经验也不要紧。

目前这本教程的基本内容已全部完成,但语言方面还需极大的完善,正在改进中。内容会不断更新,敬请关注,并欢迎提宝贵意见。

版权归作者所有,欢迎链接,请勿转载。

[节选]新一代专家系统工具——基于Java的Jess(转载)

转自:http://www.360doc.com/showWeb/0/1/42844.aspx

近10 年来,随着计算机技术和人工智能技术的飞速发展,尤其是网络技 术的进步,专家系统也有了新的重大发展,出现了以Java为核心技术的专家系统开发工具。由美国Sandia实验室推出的专家系统外壳Jess(Java expert system shell)就是其中的一个出色代表,本文将介绍它的来龙去脉和主要特点。 More… »