SAP内存配置优化方法
- 格式:ppt
- 大小:419.50 KB
- 文档页数:20
SAPABAP性能优化SAPABAP(高级商务应用编程语言)是一种面向SAP应用程序开发的编程语言。
在开发SAPABAP应用程序时,性能优化是非常重要的,可以提高应用程序的响应速度和效率。
以下是一些优化SAPABAP性能的技术和实践。
1.数据库访问优化:在数据库访问方面,以下几种方法可以提高性能:-尽量避免对数据库频繁的读写操作,尽量减少数据库访问的次数。
-使用WHERE语句来限制查询结果的数量,尽量避免返回大量数据。
-使用索引来加速数据库查询操作。
对于频繁访问的字段,可以创建相应的索引。
-避免在循环中进行数据库查询操作,可以将多次查询合并为一次查询,提高效率。
2.代码优化:在编写ABAP代码时,以下几种方法可以提高性能:-避免使用SELECT*语句,尽量只选择需要的字段。
-避免在循环中进行复杂的计算操作,可以将计算提取到循环之外,减少计算次数。
-避免频繁使用长字段,例如TEXT字段,可以将其存储在辅助表中,减少数据库访问次数。
-使用内表来处理数据,避免频繁的数据库访问。
3.内存优化:在使用内存方面,以下几种方法可以提高性能:-尽量减少内存的使用,避免无用的变量和数据结构占用过多内存。
-对于大量数据的处理,可以使用ITAB或HASHEDTABLE来提高效率,尽量避免使用SORTEDTABLE。
-注意内存泄漏问题,及时释放不再使用的内存空间。
4.并发处理优化:在处理并发操作时,以下几种方法可以提高性能:-使用合适的锁策略,避免死锁和长时间的等待。
-尽量避免对同一个资源进行频繁的读写操作,可以考虑其他方法来减少并发冲突。
-使用事务控制来保证数据的一致性和完整性。
-如果可能,可以将并发操作分解成多个较小的操作,减少并发冲突的可能性。
5.缓存优化:在使用缓存方面,以下几种方法可以提高性能:- 使用合适的缓存技术,例如SAP的共享内存(Shared Memory)和缓冲区(Buffers)。
-对于频繁使用的数据,可以将其缓存在共享内存中,提高访问速度。
SAP_性能调优V1.0本资料仅供内部使用!文档名称:SAP开发技术指南文档秘级:内部使用文档版本:1.0最后修订日期:2012-02-11[SAP开发技术指南-性能调优]2012年02月06日本文件中出现的任何文字叙述、文档格式、插图、照片、方法、过程等内容,除另有特别注明,版权均属所有,受到有关产权及版权法保护。
任何个人、机构未经的书面授权许可,不得以任何方式复制或引用本文件的任何片段修改记录目录1引言 (4)1.1参考资料 (4)1.2定义 (4)1.3文档结构 (4)2性能分析工具ST12 (5)2.1开始T RACE前的准备工作 (5)2.1.1Internal tables (5)2.1.2Options (6)2.2性能分析模式讲解 (6)2.2.1模式User (6)2.2.2模式Task&HTTP (8)2.2.3模式Workprocess (9)2.2.4模式Current mode (11)2.3T RACE分析 (12)3案例 (14)3.1T RACE (15)3.2T RACE结果分析 (15)3.3优化建议 (16)4补充 (17)4.1SCI可以进行静态的性能检测 (17)4.2ST05SQL检测 (17)4.3SE30性能分析 (18)1 引言为了验证软件系统是否能够达到用户提出的性能指标,确保实际使用中的稳定性,在软件开发周期中,都会进行性能测试,测试的结果不能达标后,需要进行性能调优,一般情况下,可以从两方面进行调优:1,硬件配置方面;2,软件自身优化,此文主要从程序角度分析。
SAP针对程序提供了静态和动态的分析工具,静态主要是通过语法检查来分析,tcode:SCI;动态为ST05,SE30,ST12,因ST12是ST05和SE30的结合体,此文将重点讲解ST12,它是将程序的执行过程记录(包括顺序,花费时间)下,从而可以查看哪些程序点消耗时间过长(后文将统称为:Trace),然后进一步分析优化。
SAP系统配置参数详解SAP系统配置参数详解1.查看所有的参数及当前设定,可使⽤T-CODE SA38 执⾏程序 RSPARAMT-CODE sa38SAP 系统参数设置设置SAPGUI⾃动LogOut功能当客户端长时间没有使⽤时,为了不占⽤SAP服务器的资源,我们可以设置当客户端在⼀段时间没有进⾏操作时⾃动退出SAP系统。
设置步骤如下:⽤Tcode rz10打开参数配置窗⼝,选择你当前的实例参数⽂件,再选扩展编辑,按修改按钮进⼊扩展参数编辑窗⼝中。
按参数创建按钮,创建⼀个名为“rdisp/gui_auto_logout”的参数,参数值输⼊“800”,代表如果客户10分种(600秒)没有进⾏操作,则会⾃动退出SAP 系统。
按退出保存设置。
在rz10窗⼝按保存把参数传送到系统的参数⽂件中。
重启SAP实例,使配置参数⽣效。
我们还可⽤rz11来设置当前正在运⾏的实例的⼀些参数,但⽤这种⽅法设置的参数只会影响当前运⾏的实例,⼀旦重启实例,参数就会失效。
path: /usr/sap/PRD/SYS/profileprofile: PRD_DVEBMGS00_sapappT-CODE:RZ10进⾏SAP系统参数的设置,设置后需激活参数并重启SAP实例,配置参数才会⽣效login/system_client 登录时默认的Client号login/password_expiration_time 密码有效期login/fails_to_user_lock 密码输错多少次后锁定login/failed_user_auto_unlock ⽤户失效后多长时间解锁rdisp/mshost 状态栏中显⽰的系统名称rdisp/rfc_use_quotas 是否激活配额资源分配,0是关闭,1是启⽤.以下相关限制必须这个为1时才⽣效.rdisp/gui_auto_logout 表⽰如果客户在指定时间内没有进⾏任何操作,则会⾃动退出SAP系统。
内存管理(SAP和ABAP内存)缓存设定以及程序memory管理等内存有两种,一种是SAP内存,一种是ABAP内存:(这两种内存都是针对同一个用户,如果要针对不用用户就要使用共享object,请参考后面内容)他们两者的关系如下图:还有一个概念需要理解的:用户登陆后,最多一个系统可以开6个窗口,这在SAP中称为External Mode。
而同一个窗口中,运行某程序后,可以通过CALLTRANSACTION/SUBMIT或其他代码跳转到其他程序,这个称为Internal Mode。
Internal Mode的调用栈最多为9层。
那么ABAP Memory,它是属于Internal Mode间可以共享的数据,而External Mode间无法共享。
SAP Memory就可以调用不同session的。
1、ABAP内存:通过EXPORT,IMPORT实现。
同一个session(一个窗口)才可以。
如果是不同session,必须在另外一个程序通过submit,call transaction调用,然后才可以实现内存传输。
实现方法如下:例子. 创建程序A,输入:DATA matnr TYPE matnr.IMPORT matnr FROM MEMORY ID 'YTEST_MATNR'.WRITE matnr.创建程序B,输入:DATA matnr TYPE matnr.matnr = '000000000000001234'.EXPORT matnr TO MEMORY ID 'YTEST_MATNR'.SUBMIT y_program_a. '调用程序A直接运行B,发现程序A从ABAP Memory读到了值并输出到LIST.说明:(1)调试运行B到EXPORT语句后面,Goto-System Area-ABAP Memory,可以查看到名为YTEST_MATNR的一片内存。
SAPR3性能优化指南1998 年 11 月发行读者本文档所提供的信息能够帮助 SAP R/3 数据库管理员懂得Microsoft® SQL Server™ 7.0 的各个方面。
这些方面能够通过优化,从而在与 SAP R/3 环境有关的特有数据库工作负荷条件下提供最佳性能。
尽管本文档是为 SAP R/3 站点量身定制的,但是一定要注意本文档中描述的 SQL Server 功能与优化技巧不仅仅适用于 SAP R/3。
大型到超大型数据库 (VLDB) 需要支持大量用户连接与大的工作负荷,工作于这一环境中的数据库管理员将从本文的信息中获益匪浅。
引言本篇有关性能优化的文档将讨论 SAP R/3 环境中的 SQL Server 7.0 最佳配置。
本指南分为四个逻辑部分。
第一部分,讨论与Microsoft Windows NT® Server 有关的配置选项。
第二部分,描述 SAP R/3 环境中 SQL Server 的重要配置选项。
前面这两个部分直截了当,其中还包含了在 SQL Server 的初始配置过程中几分钟就能够完成的一些步骤。
第三部分,讨论 SQL Server 的索引设计,由于它与 SAP R/3 有关。
索引分析往往是一个极其棘手的过程,为使数据库性能最佳需要持续不断地执行索引分析。
Microsoft TechNet 中的“Microsoft SQL Server 7.0 性能优化指南”应该作为本文第三部分的补充读物。
该指南综合讨论硬件 I/O 性能、索引设计与 SQL Server 性能优化工具。
第四部分,讨论 R/3 数据库中的 SQL Server 文件与文件组的最佳应用。
Windows NT 配置Windows NT 页面文件的大小应该至少比服务器上安装的 RAM 大三倍,而且要至少有 10 亿字节(1 GB)。
设置页面文件大小1.在开始菜单上,指向设置,然后单击操纵面板。
Parameter value in Defaultprofilesize display in ST02DescriptionRdisp/Roll_maxfs 125000 not display but should be the sum of(200,000+800,000)/88 kb Maximum size of roll fileRdisp/Roll_SHM 25000 =25000*8=800,0008 kb part of roll file in shared memoryRdisp/PG_maxfs 312500 not display but should be the sumof(1,500,000+1,000,000)/88 kb Maximum size of the SAP paging fileRdisp/PG_SHM 187500=187500*8=150,0008 kb part of paging file in shared memoryEM/TOTAL_SIZE_MB 25840=25840*1024=26460160extend of memory [SAPBASIS]SAP内存管理参数详解SAP内存管理参数详解⽬录1. 内存管理参数配置2. 内存管理参数优化3. 内存管理参数验证1. 内存管理参数配置SAP内存三⼤块,Roll,Page和Extent,以下是参数⽰例及详解(for AIX,LINUX system)下图为SAP内存管理参详解:2.内存管理参数优化这只是⼀个例⼦,实际设中,我们会通常会在⽣产系统中设定以下,让page 和roll 在MEMory 上运⾏⽽不是在磁盘上,以提⾼SAP的性能rdisp/roll_maxfs=125000rdisp/roll_shm=125000rdisp/PG_shm=312500rdisp/PG_maxfs=312500这样设置之后,OnDisk[KB]会显⽰空⽩,表⽰所有的Roll area 和Page area 都运⾏在内存上.3.内存管理参数验证在设置完参数后在<sapsid>⽤户互环境下运⾏sappfpar check pf=/usr/sap/<SAPSID>/SYS/profile/DEFAULT.PFL. 如果有ERROR在倒数第⼆⾏,请更改相关参数,否则SAP在重新起动时会出错⽽不可以正常运⾏sappfpar check pf=C11_DVEBMGS35_rb3C11a0================================================== Checking profile: /usr/sap/C11/SYS/profile/C11_DVEBMGS35_rb3C11a0== SAP Release 749== SAP Patch 724== System ID 324 (IBM RS/6000 with AIX)== ES Implementation SHM2================================================Metadata Parameters Analysis================================================Parameters Redefinitions================================================***ERROR: sec/rsakeylengthdefault defined 2 times in /usr/sap/C11/SYS//profile/DEFAULT.PFLFormula Based Parameters================================================Parameter changes if default formulas would be used:================================================EM/TOTAL_SIZE_MB: 20480 --> 22938ES/SHM_MAX_SHARED_SEGS: 4 --> 2ES/SHM_PROC_SEG_COUNT: 8 --> 6ES/SHM_SEG_SIZE: 8192 --> 4096abap/buffersize: 4000000 --> 4698112abap/cov_buffersize: 112640 --> 119789abap/heap_area_total: 100000000 --> 3435973837abap/programs: 1000000 --> 1174528abap/shared_objects_size_MB: 1024 --> 459em/global_area_MB: 2048 --> 1147em/initial_size_MB: 20480 --> 22938em/max_size_MB: 20480 --> 22938em/reserved_area_MB: 410 --> 459es/max_seg_size_MB: 5032 --> 4096gw/max_conn: 4000 --> 8000ipc/shm_psize_40: 1677721600 --> 1835008000rdisp/PG_SHM: 125000 --> 66280rsdb/ntab/entrycount: 500000 --> 800000rsdb/ntab/ftabsize: 2000000 --> 800000rsdb/ntab/irbdsize: 400000 --> 160000rsdb/ntab/sntabsize: 200000 --> 80000rsdb/obj/buffersize: 300000 --> 335544rsdb/obj/max_objects: 100000 --> 83886rsdb/tbi_buffer_area_MB: 4000 --> 2776rtbb/buffer_length: 209715 --> 234881rtbb/max_tables: 69905 --> 78294zcsa/db_max_buftab: 699051 --> 782937zcsa/table_buffer_area: 2147483648 --> 2405181686Additional Memory and OS Specific Checks================================================Shared Memory Disposition Overview================================================Shared memory poolsKey: 10 PoolSize configured.....: 2100000000 (2002.7 MB)Size min. estimated.: 664763426 ( 634.0 MB)Advised Size........: 668000000 ( 637.1 MB)Shared memories inside of pool 10Key: 1 Size: 512 ( 0.0 MB) System administrationKey: 4 Size: 1109520 ( 1.1 MB) statistic areaKey: 7 Size: 33376 ( 0.0 MB) Update task administrationKey: 11 Size: 3000000 ( 2.9 MB) Factory calender bufferKey: 12 Size: 6000000 ( 5.7 MB) TemSe Char-Code convert Buf.Key: 13 Size: 60500000 ( 57.7 MB) Alert AreaKey: 14 Size: 40000000 ( 38.1 MB) Presentation bufferKey: 16 Size: 21360 ( 0.0 MB) Semaphore activity monitoringKey: 18 Size: 3382760 ( 3.2 MB) Paging administrationKey: 21 Size: 27232832 ( 26.0 MB) Request Queue AdminKey: 30 Size: 86140 ( 0.1 MB) Taskhandler runtime admin.Key: 46 Size: 160 ( 0.0 MB) DB sync tableKey: 47 Size: 41063424 ( 39.2 MB) DB CUA bufferKey: 48 Size: 2760160 ( 2.6 MB) Number range bufferKey: 49 Size: 2409708 ( 2.3 MB) Spool admin (SpoolWP+DiaWP) Key: 51 Size: 35000000 ( 33.4 MB) Extended memory admin.Key: 52 Size: 180000 ( 0.2 MB) Message Server bufferKey: 56 Size: 535936 ( 0.5 MB) Application statisticsKey: 57 Size: 1992294 ( 1.9 MB) Profilparameter in shared mem Key: 58 Size: 2076 ( 0.0 MB) Enqueue ID for resetKey: 62 Size: 180355072 ( 172.0 MB) Memory pipesKey: 64 Size: 4227072 ( 4.0 MB) Online Text Repository Buf.Key: 65 Size: 204832768 ( 195.3 MB) Export/Import Shared Memory Key: 81 Size: 35184 ( 0.0 MB) Security Audit LogShared memories outside of poolsKey: 2 Size: 248242704 ( 236.7 MB) Disp. administration tablesKey: 3 Size: 313344000 ( 298.8 MB) Disp. communication areasKey: 6 Size: 4259840000 (4062.5 MB) ABAP program bufferKey: 8 Size: 1024000500 ( 976.6 MB) Paging bufferKey: 20 Size: 156915666 ( 149.6 MB) New Table buffer tbiKey: 34 Size: 536870912 ( 512.0 MB) Enqueue tableKey: 41 Size: 25010000 ( 23.9 MB) DB statistics bufferKey: 42 Size: 268510352 ( 256.1 MB) DB TTAB bufferKey: 43 Size: 2088001424 (1991.3 MB) DB FTAB bufferKey: 44 Size: 425601424 ( 405.9 MB) DB IREC bufferKey: 45 Size: 220801424 ( 210.6 MB) DB short nametab bufferKey: 54 Size: 307208192 ( 293.0 MB) Export/Import bufferKey: 63 Size: 409600 ( 0.4 MB) ICMAN shared memoryKey: 73 Size: 60211232 ( 57.4 MB) CCMS Extended Alert AreaKey: 76 Size: 1185920 ( 1.1 MB) Ext. Segment AdministrationKey: 77 Size: 66688 ( 0.1 MB) Ext. Memory AdministrationKey: 78 Size: 4272 ( 0.0 MB) Ext. Global Memory AdminKey: 83 Size: 115343360 ( 110.0 MB) ABAP Coverage AnalyzerKey: 85 Size: 53264 ( 0.0 MB) ACM Trace and othersShared memory resource requirements estimatedTotal Nr of shared segments required.....: 22Nr of shared segments successful tested..: 100Shared memory segment size required min..: 4259840000 (4062.5 MB) Currently available maximum segment size.: 34359738368 (32768.0 MB) R/3-imposed maximum segment size.........: 21474836480 (20480.0 MB) Memory Space Requirements Estimated *================================================Shared memory....................: 10225 MB..in pool 10: 634.0 MB ( 99% used) **..not in pool: 9586.4 MBExtended Memory .................: 0 MBSAP Heap Memory .................: 95 MBGateway process .................: 143 MBICM process .....................: 195 MBAll Processes ...................: 4648 MB ( 41 WPs)------------------------------------------------Total, minimum requirement........: 14873 MBProcess local heaps, worst case...: 4743 MBTotal, worst case requirement.....: 14968 MB* These are only estimated values,final sizes may change** Shared Pools are automaticallycalculated by Kernel================================================Errors detected..................: 1Warnings detected................: 0================================================。
SAP系统性能优化方法探究摘要: SAP系统为企业提供了强大的业务管理解决方案,全球应用广泛。
但各企业的业务背景不同,用户定制化的需求也各异,需要ABAP开发语言在系统上进行二次开发。
本文分析了影响ABAP程序性能的诸多因素,结合系统标准功能,深入研究了多种程序优化的技术方法,通过实践检验,达到了提升SAP系统整体性能的目的。
关键词:性能优化;ABAP开发语言;SAP系统;二次开发1.影响ABAP程序性能的因素SAP系统由底层的文件系统、数据库管理系统、应用服务器、表现层的UI构成[1]。
影响ABAP程序性能的因素有很多,主要有以下几个:(1)硬件性能:数据库服务器、应用服务器的处理能力,客户端电脑的性能等都会影响ABAP程序的性能。
(2)网络带宽:ABAP 程序需要在在服务器之间、服务器与客户端之间传递数据,网络吞吐量的高低直接影响程序的性能[2]。
(3)服务器不合理的配置:SAP 服务器不合理的配置,特别是内存的配置,影响 ABAP 程序的性能。
(4)数据库表不合理的索引:数据库表索引能够提高查询数据的速度,但同时也会增加服务器选择索引的成本和更新索引的开销。
因此,没有索引和滥建索引都会影响 ABAP 程序的性能。
(5)程序处理的数据量:如果随着数据量的增加,程序的执行时间呈对数方式提升,则说明程序的性能较好,如果呈指数方式上升,则程序性能很差。
(6)程序不合理的代码:不合理的 ABAP 程序代码也会影响程序执行的性能。
2. ABAP程序性能优化的基本原则(1)减少对数据库的访问访问数据库消耗非常多的时间,频繁的访问数据库,对程序性能的影响是显而易见的,因为这意味着数据库开销的增加和网络往返次数的增加,所以在一个程序中,访问数据库的次数越少越好。
宁可一次多返回一些数据,也不要增加访问次数[1-2]。
(2)减少网络往返的数据量网络传输也能很明显的影响程序的执行时间,如果传输的数据量很大,那么网络延迟的时间就会很明显。