SAP内存架构分析-优化配置
- 格式:pptx
- 大小:201.24 KB
- 文档页数:20
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的一片内存。
sap组织架构设置-回复SAP组织架构设置:提高企业效能的关键引言:在当今竞争激烈的市场环境中,组织架构的设置对企业的成功至关重要。
SAP(Systems, Applications, and Products in Data Processing)作为全球领先的企业应用解决方案提供商,其组织架构的设置对于公司的运作和绩效发挥着至关重要的作用。
本文将向您阐述SAP组织架构设置的重要性,并逐步解释如何设计和实施一个高效的SAP组织架构。
第一部分:SAP组织架构的重要性1. 提高协同合作能力SAP组织架构的设计可以促进不同部门和团队之间的协同合作。
通过明确的职责和角色定位,SAP组织架构能够建立一个有效的沟通和合作网络,有助于各个团队共同努力实现公司的目标。
2. 简化决策流程一个清晰的SAP组织架构可以简化决策流程,提高决策的效率和准确性。
通过明确的层级结构和责任分工,决策者可以更轻松地了解和管理组织的各个方面,从而更快地做出正确的决策。
3. 优化资源利用通过合理的SAP组织架构,企业可以更好地优化资源的利用。
通过合理地配置人员和分配任务,可以确保人力、物力和财力的合理分配,提高资源利用效率,降低成本,提升整体绩效。
第二部分:设计一个高效的SAP组织架构1. 分析和了解业务需求首先,为了设计一个高效的SAP组织架构,企业需要充分了解其业务需求。
这可以通过与各部门和团队的沟通和合作来实现。
通过与不同利益相关方的交流,我们可以了解他们的需求,确定在SAP系统中需要考虑的功能和流程。
2. 定义SAP组织架构的目标和原则在设计SAP组织架构之前,企业需要明确制定目标和原则。
这些目标和原则将成为设计过程中的指导和依据。
目标可以包括提高协同合作能力、简化决策流程、优化资源利用等;原则可以包括确保适当的授权和责任分工、合理的层级结构、明确的职责和角色等。
3. 制定组织结构图基于对业务需求的了解和目标的设定,企业可以开始制定SAP组织结构图。
SAP程序性能优化解析For all entriesThe for all entries creates a where clause, where all the entries in the driver table are combined with OR. If the number of entries in the driver table is larger thanrsdb/max_blocking_factor, several similar SQL statements are executed to limit the length of the WHERE clause. The plus Large amount of dataMixing processing and reading of dataFast internal reprocessing of dataFastThe MinusDifficult to program/understandMemory could be critical (use FREE or PACKAGE sizeSome steps that might make FOR ALL ENTRIES more efficient: Removing duplicates from the driver tableSorting the driver tableIf possible, convert the data in the driver table to ranges so a BETWEEN statement is used instead of and OR statement:FOR ALL ENTRIES IN i_tabWHERE mykey >= i_tab-low and mykey <=i_tab-high.Nested selectsThe plus:o Small amount of datao Mixing processing and reading of datao Easy to code - and understandThe minus:o Large amount of datao when mixed processing isn’t neededo Performance killer no. 1Select using JOINSThe pluso Very large amount of datao Similar to Nested selects - when the accesses are planned by the programmer o In some cases the fastesto Not so memory criticalThe minuso Very difficult to program/understando Mixing processing and reading of data not possibleUse the selection criteriaSELECT * FROM SBOOK.CHECK: SBOOK-CARRID = 'LH' AND SBOOK-CONNID = '0400'.ENDSELECT.SELECT * FROM SBOOKWHERE CARRID = 'LH' ANDCONNID = '0400'.ENDSELECT.Use the aggregated functionsC4A = '000'.SELECT * FROM T100WHERE SPRSL = 'D' ANDARBGB = '00'.CHECK: T100-MSGNR > C4A.C4A = T100-MSGNR.ENDSELECT.SELECT MAX( MSGNR FROM T100 INTO C4A WHERE SPRSL = 'D' ANDARBGB = '00'.Select with viewSELECT * FROM DD01LWHERE DOMNAME LIKE 'CHAR%'AND AS4LOCAL = 'A'. SELECT SINGLE * FROM DD01T WHERE DOMNAME = DD01L-DOMNAME AND AS4LOCAL = 'A' AND AS4VERS = DD01L-AS4VERS AND DDLANGUAGE = SY-LANGU. ENDSELECT.SELECT * FROM DD01V WHERE DOMNAME LIKE 'CHAR%' AND DDLANGUAGE = SY-LANGU. ENDSELECT.Select with index supportSELECT * FROM T100WHERE ARBGB = '00'AND MSGNR = '999'. ENDSELECT.SELECT * FROM T002.SELECT * FROM T100WHERE SPRSL = T002-SPRASAND ARBGB = '00'AND MSGNR = '999'.ENDSELECT. ENDSELECT.Select … Into tableREFRESH X006.SELECT * FROM T006 INTO X006.APPEND X006. ENDSELECTSELECT * FROM T006 INTO TABLE X006. Select with selection list SELECT * FROM DD01LWHERE DOMNAME LIKE 'CHAR%'AND AS4LOCAL = 'A'. ENDSELECTSELECT DOMNAME FROM DD01LINTO DD01L-DOMNAMEWHERE DOMNAME LIKE 'CHAR%'AND AS4LOCAL = 'A'.ENDSELECTKey access to multiple linesLOOP AT TAB.CHECK TAB-K = KVAL." ...ENDLOOP.LOOP AT TAB WHERE K = KVAL." ... ENDLOOP.Copying internal tablesREFRESH TAB_DEST.LOOP AT TAB_SRC INTO TAB_DEST. APPEND TAB_DEST. ENDLOOP.TAB_DEST[] = TAB_SRC[].Modifying a set of linesLOOP AT TAB.IF TAB-FLAG IS INITIAL.TAB-FLAG = 'X'.ENDIF.MODIFY TAB.ENDLOOP.TAB-FLAG = 'X'.MODIFY TAB TRANSPORTING FLAG WHERE FLAG IS INITIAL.Deleting a sequence of linesDO 101 TIMES.DELETE TAB_DEST INDEX 450. ENDDO.DELETE TAB_DEST FROM 450 TO 550.Linear search vs. binaryREAD TABLE TAB WITH KEY K = 'X'.READ TABLE TAB WITH KEY K = 'X' BINARY SEARCH. Comparison of internal tablesDESCRIBE TABLE: TAB1 LINES L1,TAB2 LINES L2.IF L1 <> L2.TAB_DIFFERENT = 'X'.ELSE.TAB_DIFFERENT = SPACE.LOOP AT TAB1.READ TABLE TAB2 INDEX SY-TABIX.IF TAB1 <> TAB2.TAB_DIFFERENT = 'X'. EXIT.ENDIF.ENDLOOP.ENDIF.IF TAB_DIFFERENT = SPACE." ...ENDIF.IF TAB1[] = TAB2[]." ...ENDIF.Modify selected components LOOP AT TAB. TAB-DATE = SY-DATUM. MODIFY TAB. ENDLOOP. WA-DATE = SY-DATUM. LOOP AT TAB. MODIFY TAB FROM WA TRANSPORTING DATE. ENDLOOP. Appending two internal tables LOOP AT TAB_SRC. APPEND TAB_SRC TO TAB_DEST. ENDLOOP APPEND LINES OF TAB_SRC TO TAB_DEST. Deleting a set of lines LOOP AT TAB_DEST WHERE K = KVAL. DELETE TAB_DEST. ENDLOOP DELETE TAB_DEST WHERE K = KVAL. Tools available in SAP to pin-point a performance problem The runtime analysis (SE30 SQL Trace (ST05 Tips andTricks tool The performance databaseOptimizing the load of the database Using table buffering Using buffered tables improves the performance considerably. Note that in some cases a statement can not be used with a buffered table, so when using these statements the buffer will be bypassed. These statements are: o o o o o Select DISTINCT ORDER BY / GROUP BY / HAVING clause Any WHERE clause that contains a sub query or IS NULL expression JOIN s A SELECT... FOR UPDATE If you wan t to explicitly bypass the buffer, use the BYPASS BUFFER addition to the SELECT clause. Use the ABAP SORT Clause Instead of ORDER BY The ORDER BY clause is executed on the database server while the ABAP SORT statement is executed on the application server. The database server will usually be the bottleneck, so sometimes it is better to move the sort from the database server to the application server. If you are not sorting by the primary key ( E.g. using the ORDER BY PRIMARY key statement but are sorting by another key, it could be better to use the ABAP SORT statement to sort the data in an internal table. Note however that for very large result sets it might not be a feasible solution and you would want to let the databaseserver sort it. Avoid the SELECT DISTINCT Statement As with the ORDER BY clause it could be better to avoid using SELECT DISTINCT, if some of the fields are not part of an index. Instead use ABAP SORT + DELETE ADJACENT DUPLICATES on an internal table, to delete duplicate rows.。
架构图:
硬件建议
数据库服务器–建议配置:
CPU 2 x Intel Xeon 2.8 GHz(4核以上)
内存12 GB
硬盘 3 x 300 G, RAID 5
网络500 MB
磁带机(可选) 12/24 GB
远程服务器–建议配置:
CPU Intel Xeon 1 GHz
内存32 GB
硬盘 1 x 100 G
网络1000 MB
注:若服务器决定放于香港,则建议使用两强远程服务器,如果分开,则每台内存可以减半,以提高使用效率
客户端–要求:
CPU P 4 2.0 GHz
内存1G
硬盘 1 GB 空余磁盘空间
网卡100 MB
显示器1024 x 768 分辨率
网络需求–建议:
远程服务器 4 M 独享带宽
远程客户端1M
远程接入方式–有第三种方法:
方式一:VPN 专线VPN或通过VPN软件
方式二:远程桌面微软远程桌面
方式三:远程接入软件Citrix(国外,较贵)或瑞友天翼或RAS等等软件建议
服务器:
操作系统Windows 2008 企业版64-bit
数据库MS-SQL 2008企业版(可向微软购买许可或购买SAP绑定许可)防病毒软件必选
办公软件Office 2003或以上
客户端:
操作系统: MS Windows XP / Win7
防病毒软件可选
MS Office MS Office 2003或以上。
SAPABAP程序性能优化SAPABAP是一种高级商务应用编程语言,用于在SAP系统中开发和定制程序。
在开发ABAP程序时,程序的性能是一个重要的考虑因素。
优化ABAP程序的性能可以提高系统的响应速度和吞吐量,提高用户体验,减少系统负载,延长硬件使用寿命并节省资源。
下面将介绍一些常见的优化技术和最佳实践。
1.使用合适的数据库访问方法:SAPABAP程序通常需要与数据库进行交互。
在数据库访问方面,使用合适的方法可以大大提高性能。
例如,使用SELECT语句并带有合理的WHERE条件可以减少检索的数据量。
使用内部表进行数据操作,而不是使用数据库表,可以避免不必要的数据库访问。
2.避免在循环中执行数据库访问操作:在循环中执行数据库访问是一个常见的性能瓶颈。
如果可能的话,尽量避免在循环中执行数据库访问操作。
可以将数据库操作放在循环外部,并使用适当的数据结构来处理数据,以减少数据库访问的次数。
3.使用合适的索引:索引是一种用于加速数据库查询操作的数据结构。
为数据库表添加适当的索引,可以减少查询操作的时间复杂度,提高查询性能。
在ABAP程序中,可以使用数据库表的维护事务码(SE14)来添加或删除索引。
4.使用合适的缓存技术:缓存是一种将频繁访问的数据存储在存储介质中的技术。
在ABAP程序中,可以使用SAP提供的缓存技术,如共享内存和工作区缓存,来提高数据访问的性能。
使用缓存可以减少数据库访问的次数,从而显著提高程序的性能。
5.避免冗余的计算:在ABAP程序中,可以通过避免重复计算来提高性能。
如果一些计算结果在程序中多次使用,可以将结果存储在一个变量中,并在需要时使用该变量,而不是每次都重新计算。
6.使用合适的数据类型:选择合适的数据类型可以提高程序的性能。
例如,使用整数类型(INTEGER)而不是字符类型(CHAR)来存储整数数据,可以减少内存占用和计算时间。
在ABAP程序中,可以使用合适的数据类型以及相应的类型转换操作,来提高程序的性能。