ETL Performance Tuning Tips .... Tips for Sizing Input Data to an ETL Flow . .....
Simple Tuning of ETL Flows Results in Immediate Gains.
The server refuses to start after a change: did you use the correct unit? ..... innodb_buffer_pool_size â if you have
emitted a blue haze from their tailpipes too, which appeared unsightly, long ..... To check that the machine shop recuts
Michael Finocchiaro. This white paper presents the basics of Java Performance
Tuning for large Application Servers. Summer 08. Java Performance Tuning ...
Performance Tuning for the JDBCTM API. What Works, What Doesn't, and Why.
Mark Chamness. Sr. Java Engineer. Cacheware ...
databene GmbH in Gründung. Software Architect. & Performance Engineer.
JBoss User Group München. 2. April 2009. Hibernate. Performance Tuning ...
Kawasaki and Honda in the past (FIGURE 3.9). This type of port has very little
going for it as the sudden change in shape above the main transfers is very harsh
...
Jul 4, 2010 - remaindering can just be a plug-in in any integer computa- tion. We also ...... in a cheater homotopy for the cyclic 7-roots problem [4]. Although ...
Aug 26, 2013 - 4.4.1 Determine The Optimum Number of Interrupt Service CPUs . .... dimensions: Upon receiving data from
Kawasaki and Honda in the past (FIGURE 3.9). This type of port has very little
going for it as the sudden change in shape above the main transfers is very harsh
...
Overview. • What to look for in tuning. • How it relates to the graphics pipeline. •
Modern areas of interest. – Vertex Buffer Objects. – Shader performance ...
Apr 26, 2012 - Brought up the Global Database Group at Starwood Hotels, in White Plains, NY. ⢠Blog: arup.blogspot.com
Aug 7, 2012 ... Extreme (WLS/Java) Performance Workshop. WebLogic Server Performance
Tuning. Jonathan Leung. FMW APAC Performance Specialist.
will severely exacerbate the complexity of existing software solutions, a .... of a modified Java Virtual Machine (JVM) and an agent execution environment ...... Distributed Scientific Applications, Proceedings of the 9th International EuroPar.
ABAP/4 – advanced business application programming. If a language provides a
... The development objects in SAP is divided into two types: REPOSITORY ...
Oracle Database Performance Tuning Guide, 10g Release 2 (10.2). B14211-03
... the documentation, please report them to us in writing. This document is not ...
The course guide also includes applicable related white papers. The focus of ... A
hands-on opportunity to learn more about Oracle, SQL Developer, and TOAD ...
Oracle University | Entre em contato: 0800 891 6502. Oracle Database 11g:
Performance Tuning. Duração: 5 Dias. Objetivos do Curso. Students learn how to
...
http://kinetic.more.net/web/javaserver/performance.shtml http://www.more.net/.
Tuning Tomcat for performance and resolving problems which affect availability ...
than 16 · N2, we observe that the leading point in the stencil A[i,j+1] will eventually be .... formance bound based on the Roofline at said X-coordinate. Thus ...
Use various tools and mechanisms for monitoring, profiling and tuning Java applications. Apply best practices for perfor
Work with the ABAP Workbench tools. ▫ Develop your own simple ABAP
programs. ▫ Use object-oriented programming in ABAP Objects. Target Audience.
ETL Performance Tuning Tips ... Data Partitions Using Relational Databases or
SAS Scalable Performance Data Server.........................5. Transformation and ...
Database tuning is the activity of mak- ing a database system run faster. Like optimization activities in other areas of computer science and engineering, data-.
Tuning Methods .......................................................................... Structure of the Book . ................................................................. How to Use This Book .................................................................
17 18 20
2 SAP System Architecture for ABAP Developers ........................ 21 2.1
SAP System Architecture . ............................................................ 2.1.1 Three-Layer Architecture ................................................... 2.1.2 Distribution of the Three Layers . ....................................... 2.2 Performance Aspects of the Architecture ..................................... 2.2.1 Frontend ........................................................................... 2.2.2 Application Layer .............................................................. 2.2.3 Database ........................................................................... 2.2.4 Summary ...........................................................................
21 22 23 25 25 26 27 27
3 Performance Analysis Tools ....................................................... 29 3.1 Overview of Tools ........................................................................ 3.2 Usage Time of Tools ..................................................................... 3.3 Analysis and Tools in Detail ......................................................... 3.3.1 SAP Code Inspector (Transaction SCI) ................................ 3.3.2 Selectivity Analysis (Transaction DB05) .............................. 3.3.3 Process Analysis (Transactions SM50/SM66) — Status of a Program ........................................................... 3.3.4 Debugger — Memory Analysis .......................................... 3.3.5 Memory Inspector (Transaction S_MEMORY_INSPECTOR) ................................................. 3.3.6 Transaction ST10 — Table Call Statistics . ........................... 3.3.7 Performance Trace — General Information (Transaction ST05) . ...........................................................
5 Data Processing with SQL ......................................................... 147 5.1 The Architecture of a Database .................................................... 5.2 Execution of SQL ......................................................................... 5.2.1 Execution in SAP NetWeaver AS ABAP . .......................... 5.2.2 Execution in the Database . ............................................. 5.3 Efficient SQL: Basic Principles ...................................................... 5.4 Access Strategies ......................................................................... 5.4.1 Logical Structures ............................................................
8
289_Book.indb 8
147 151 151 153 155 155 155
www.sap-press.com
6/5/09 9:33:28 AM
Contents
5.5
5.6
5.7
5.8
5.9
5.4.2 Indexes as Search Helps . ................................................... 5.4.3 Operators .......................................................................... 5.4.4 Decision for an Access Path ............................................... 5.4.5 Analysis and Optimization in ABAP ................................... 5.4.6 Summary ........................................................................... Resulting Set ............................................................................... 5.5.1 Reducing the Columns ...................................................... 5.5.2 Reducing the Rows . .......................................................... 5.5.3 Reading a Defined Number of Rows .................................. 5.5.4 Aggregating . ..................................................................... 5.5.5 Existence Checks ............................................................... 5.5.6 Updates ............................................................................ 5.5.7 Summary ........................................................................... Index Design ............................................................................... 5.6.1 Read or Write Processing? ................................................. 5.6.2 How is Data Accessed? ...................................................... 5.6.3 Summary ........................................................................... Execution Frequency . .................................................................. 5.7.1 View ................................................................................. 5.7.2 Join ................................................................................... 5.7.3 FOR ALL ENTRIES ............................................................. Used API ..................................................................................... 5.8.1 Static Open SQL ................................................................ 5.8.2 Dynamic Open SQL ........................................................... 5.8.3 Static Native SQL .............................................................. 5.8.4 Summary ........................................................................... Special Cases and Exceptions ....................................................... 5.9.1 Sorting .............................................................................. 5.9.2 Pool and Cluster Tables . .................................................... 5.9.3 Hints and Adapting Statistics .............................................
6 Buffering of Data ....................................................................... 223 6.1
SAP Memory Architecture from the Developer’s Point of View .... 6.1.1 User-Specific Memory ....................................................... 6.1.2 Cross-User Memory ........................................................... 6.2 User-Specific Buffering Types ....................................................... 6.2.1 Buffering in the Internal Session ........................................
www.sap-press.com
289_Book.indb 9
223 225 225 227 227
9
6/5/09 9:33:28 AM
Contents
6.2.2 Buffering Across Internal Sessions ...................................... 6.2.3 Buffering Across External Sessions ..................................... 6.2.4 Summary ........................................................................... 6.3 Cross-User Buffering Types . ......................................................... 6.3.1 Buffering in the Shared Buffer . .......................................... 6.3.2 Buffering in the Shared Memory ........................................ 6.3.3 Buffering via the Shared Objects . ...................................... 6.3.4 Summary ........................................................................... 6.4 SAP Table Buffering ..................................................................... 6.4.1 Architecture and Overview ................................................ 6.4.2 What Tables Can Be Buffered? ........................................... 6.4.3 Performance Aspects of Table Buffering ............................. 6.4.4 Analysis Options . .............................................................. 6.5 Summary .....................................................................................
8 Communication with Other Systems ........................................ 287 8.1
10
289_Book.indb 10
RFC Communication Between ABAP Systems . ............................. 288 8.1.1 Synchronous RFC . ............................................................. 288 8.1.2 Asynchronous RFC . ........................................................... 288
www.sap-press.com
6/5/09 9:33:28 AM
Contents
8.2 Performance Aspects for the RFC Communication . ...................... 290 8.3 Summary ..................................................................................... 293
9 Special Topics ............................................................................ 295 9.1
9.2 9.3 9.4 9.5 9.6
Local Update ............................................................................... 9.1.1 Asynchronous Update ..................................................... 9.1.2 Local Update . ................................................................. Parameter Passings ...................................................................... Type Conversions ......................................................................... Index Tables . ............................................................................... Saving Frontend Resources .......................................................... Saving Enqueue and Message Service ..........................................
295 295 297 298 299 299 300 301
10 Outlook . .................................................................................... 303 10.1 Important Changes to the Tools for the Performance Analysis ...... 10.1.1 Performance Trace (Transaction ST05) ............................. 10.1.2 ABAP Trace (Transaction SAT) ......................................... 10.2 Important Changes to Internal Tables (Secondary Key) ................. 10.2.1 Definition ....................................................................... 10.2.2 Administration Costs and Lazy Index Update . ................. 10.2.3 Read Accesses ................................................................. 10.2.4 Active Key Protection . .................................................... 10.2.5 Delayed Index Update for Incremental Key Changes ....... 10.2.6 Summary . .......................................................................
303 303 309 314 314 315 315 317 317 318
Appendices ...................................................................................... 319 A Execution Plans of Different Databases . ................................................ A.1 General Information on Execution Plans ...................................... A.2 IBM DB2 (IBM DB2 for zSeries) ................................................... A.3 IBM DB2 (DB2 for iSeries) ........................................................... A.4 IBM DB2 (DB2 for LUW) ............................................................. A.5 SAP MaxDB .................................................................................
www.sap-press.com
289_Book.indb 11
319 319 320 323 326 329
11
6/5/09 9:33:28 AM
Contents
A.6 Oracle ......................................................................................... 332 A.7 Microsoft SQL Server ................................................................... 336 B The Author ........................................................................................... 339 Index .......................................................................................................... 341
12
289_Book.indb 12
www.sap-press.com
6/5/09 9:33:28 AM
Inefficient accesses to internal tables are a frequent cause of long-running ABAP programs. This particularly applies to the processing of large data volumes. This chapter describes the most critical aspects for ABAP developers for the processing of internal tables.
7
Processing of Internal Tables
Internal tables are among the most complex data objects available in the ABAP environment. The use of internal tables lets you store dynamic datasets in the main memory. Internal tables are comparable to arrays and they spare the programmer the effort of program-controlled memory management thanks to their dynamic nature. The data in internal tables is managed per row, whereas each row has the same structure. In most cases, internal tables are used for the buffering or formatting of contents from database tables. The type of access to internal tables plays an important role for performance, as is the case with database tables. Experience shows that the tuning of internal tables enables similarly major effects as the tuning of database accesses. The negative effects of inefficient accesses to internal tables for the overall system can be compensated more easily than inefficient database accesses by adding further CPUs or application servers. Inefficient database accesses affect the database as a central resource, whereas inefficient accesses to internal tables impact the better scalable application layer (see Chapter 2). The following sections first provide a general overview of the internal tables. This is followed by a description of how the internal tables are organized in the main memory. The subsequent section discusses the different types of internal tables. The major part of this chapter then details the performance aspects for the processing of internal tables. Typical problematic examples and solution options are presented here.
7.1
Overview of Internal Tables
Internal tables are completely specified by four properties:
www.sap-press.com
289_Book.indb 253
253
6/5/09 9:34:41 AM
7
Processing of Internal Tables
1. Table type The access type to the table type determines how ABAP accesses the individual table rows. Section 7.3, Table Types, discusses this topic in great detail. 2. Row type The row type of an internal table can be any ABAP data type. 3. Uniqueness of the key The key can be specified as unique or non-unique. In case of unique keys, there are no multiple entries (regarding the key) in the internal tables. The uniqueness is based on the table type. Standard tables only allow for non-unique keys and hashed tables only for unique keys. 4. Key components (taking the sequence into account) The key components and their sequence specify the criteria based on which the table rows are identified. Figure 7.1 illustrates this syntactically. Field1
Field2
Field3
A
1
10
A
2
5
B
1
7
B
2
25
Figure 7.1 Internal Tables — Declaration
The combination of access type and table type is mainly relevant for the performance. Section 7.3, Table Types, discusses the various access types and table types.
254
289_Book.indb 254
www.sap-press.com
6/5/09 9:34:41 AM
Organization in the Main Memory
7.2
Before describing the table types in detail, let’s first discuss the organization of internal tables in the main memory.
7.2
Organization in the Main Memory
In the main memory, the internal tables, just like the database tables, are organized in blocks or pages. In the context of internal tables, the following sections use the term pages. When an internal table is declared in an ABAP program, the system only creates a reference (table reference) in the main memory initially. Only when entries are written to the table does the system create a table header and a table body. Figure 7.2 shows a schematic diagram of the organization in the main memory.