ABAP Performance Tuning
Автор: Hermann Gahm
Издательство:
Страниц: 344
ISBN: 978-1-59229-289-9
Ещё по теме
ABAP Performance Tuning
Hermann Gahm
Is your ABAP as good as it can be? With this essential guide, find out how to make it so. You’ll learn about analysis tools and performance-relevant technologies, and discover how you can analyze existing source code and enhance your programming style. It's time to make sure that your ABAP programs are fully optimized.
978-1-59229-289-9
Hardcover
344 страницы
1 ... Introduction | 17 |
... 1.1 ... Tuning Methods | 17 |
... 1.2 ... Structure of the Book | 19 |
... 1.3 ... How to Use This Book | 20 |
2 ... SAP System Architecture for ABAP Developers | 21 |
... 2.1 ... SAP System Architecture | 21 |
... ... 2.1.1 ... Three-Layer Architecture | 22 |
... ... 2.1.2 ... Distribution of the Three Layers | 23 |
... 2.2 ... Performance Aspects of the Architecture | 25 |
... ... 2.2.1 ... Frontend | 26 |
... ... 2.2.2 ... Application Layer | 26 |
... ... 2.2.3 ... Database | 27 |
... ... 2.2.4 ... Summary | 27 |
3 ... Performance Analysis Tools | 29 |
... 3.1 ... Overview of Tools | 29 |
... 3.2 ... Usage Time of Tools | 31 |
... 3.3 ... Analysis and Tools in Detail | 34 |
... ... 3.3.1 ... SAP Code Inspector (Transaction SCI | 34 |
... ... 3.3.2 ... Selectivity Analysis (Transaction DB05 | 40 |
... ... 3.3.3 ... Process Analysis (Transactions SM50/SM66) — Status of a Program | 44 |
... ... 3.3.4 ... Debugger — Memory Analysis | 47 |
... ... 3.3.5 ... Memory Inspector (Transaction S_MEMORY_INSPECTOR | 49 |
... ... 3.3.6 ... Transaction ST10 — Table Call Statistics | 51 |
... ... 3.3.7 ... Performance Trace — General Information (Transaction ST05 | 54 |
... ... 3.3.8 ... Performance Trace — SQL Trace (Transaction ST05 | 57 |
... ... 3.3.9 ... Performance Trace — RFC Trace (Transaction ST05 | 70 |
... ... 3.3.10 ... Performance Trace — Enqueue Trace (Transaction ST05 | 72 |
... ... 3.3.11 ... Performance Trace — Table Buffer Trace (Transaction ST05 | 74 |
... ... 3.3.12 ... ABAP Trace (Transaction SE30 | 77 |
... ... 3.3.13 ... Single Transaction Analysis (Transaction ST12 | 89 |
... ... 3.3.14 ... E2E Trace | 101 |
... ... 3.3.15 ... Single Record Statistics (Transaction STAD | 109 |
... ... 3.3.16 ... Dump Analysis (Transaction ST22 | 119 |
... 3.4 ... Tips for the Performance Analysis | 123 |
... ... 3.4.1 ... Consistency Checks | 123 |
... ... 3.4.2 ... Time-Based Analysis | 123 |
... ... 3.4.3 ... Prevention | 123 |
... ... 3.4.4 ... Optimization | 124 |
... ... 3.4.5 ... Runtime Behavior of Mass Data | 124 |
... 3.5 ... Summary | 124 |
4 ... Parallel Processing | 127 |
... 4.1 ... Packaging | 127 |
... 4.2 ... Parallel Processing | 129 |
... ... 4.2.1 ... Background | 130 |
... ... 4.2.2 ... Challenges and Solution Approaches for Parallelized Programs | 131 |
... ... 4.2.3 ... Parallel Processing Technologies | 140 |
... ... 4.2.4 ... Summary | 145 |
5 ... Data Processing with SQL | 147 |
... 5.1 ... The Architecture of a Database | 147 |
... 5.2 ... Execution of SQL | 151 |
... ... 5.2.1 ... Execution in SAP NetWeaver AS ABAP | 151 |
... ... 5.2.2 ... Execution in the Database | 153 |
... 5.3 ... Efficient SQL: Basic Principles | 155 |
... 5.4 ... Access Strategies | 155 |
... ... 5.4.1 ... Logical Structures | 155 |
... ... 5.4.2 ... Indexes as Search Helps | 158 |
... ... 5.4.3 ... Operators | 167 |
... ... 5.4.4 ... Decision for an Access Path | 169 |
... ... 5.4.5 ... Analysis and Optimization in ABAP | 170 |
... ... 5.4.6 ... Summary | 184 |
... 5.5 ... Resulting Set | 185 |
... ... 5.5.1 ... Reducing the Columns | 188 |
... ... 5.5.2 ... Reducing the Rows | 190 |
... ... 5.5.3 ... Reading a Defined Number of Rows | 191 |
... ... 5.5.4 ... Aggregating | 193 |
... ... 5.5.5 ... Existence Checks | 195 |
... ... 5.5.6 ... Updates | 196 |
... ... 5.5.7 ... Summary | 197 |
... 5.6 ... Index Design | 198 |
... ... 5.6.1 ... Read or Write Processing | 200 |
... ... 5.6.2 ... How is Data Accessed | 202 |
... ... 5.6.3 ... Summary | 204 |
... 5.7 ... Execution Frequency | 205 |
... ... 5.7.1 ... View | 209 |
... ... 5.7.2 ... Join | 210 |
... ... 5.7.3 ... FOR ALL ENTRIES | 211 |
... 5.8 ... Used API | 215 |
... ... 5.8.1 ... Static Open SQL | 216 |
... ... 5.8.2 ... Dynamic Open SQL | 216 |
... ... 5.8.3 ... Static Native SQL | 216 |
... ... 5.8.4 ... Summary | 217 |
... 5.9 ... Special Cases and Exceptions | 217 |
... ... 5.9.1 ... Sorting | 217 |
... ... 5.9.2 ... Pool and Cluster Tables | 218 |
... ... 5.9.3 ... Hints and Adapting Statistics | 220 |
6 ... Buffering of Data | 223 |
... 6.1 ... SAP Memory Architecture from the Developer’s Point of View | 223 |
... ... 6.1.1 ... User-Specific Memory | 225 |
... ... 6.1.2 ... Cross-User Memory | 225 |
... 6.2 ... User-Specific Buffering Types | 227 |
... ... 6.2.1 ... Buffering in the Internal Session | 227 |
... ... 6.2.2 ... Buffering Across Internal Sessions | 230 |
... ... 6.2.3 ... Buffering Across External Sessions | 231 |
... ... 6.2.4 ... Summary | 231 |
... 6.3 ... Cross-User Buffering Types | 232 |
... ... 6.3.1 ... Buffering in the Shared Buffer | 232 |
... ... 6.3.2 ... Buffering in the Shared Memory | 233 |
... ... 6.3.3 ... Buffering via the Shared Objects | 234 |
... ... 6.3.4 ... Summary | 235 |
... 6.4 ... SAP Table Buffering | 236 |
... ... 6.4.1 ... Architecture and Overview | 237 |
... ... 6.4.2 ... What Tables Can Be Buffered | 243 |
... ... 6.4.3 ... Performance Aspects of Table Buffering | 244 |
... ... 6.4.4 ... Analysis Options | 251 |
... 6.5 ... Summary | 251 |
7 ... Processing of Internal Tables | 253 |
... 7.1 ... Overview of Internal Tables | 253 |
... 7.2 ... Organization in the Main Memory | 255 |
... 7.3 ... Table Types | 258 |
... 7.4 ... Performance Aspects | 265 |
... ... 7.4.1 ... Fill | 265 |
... ... 7.4.2 ... Read | 268 |
... ... 7.4.3 ... Modify | 273 |
... ... 7.4.4 ... Delete | 274 |
... ... 7.4.5 ... Condense | 275 |
... ... 7.4.6 ... Sort | 276 |
... ... 7.4.7 ... Copy Cost-Reduced or Copy Cost-Free Access | 277 |
... ... 7.4.8 ... Secondary Indexes | 278 |
... ... 7.4.9 ... Copy | 279 |
... ... 7.4.10 ... Nested Loops and Nonlinear Runtime Behavior | 282 |
... ... 7.4.11 ... Summary | 284 |
8 ... Communication with Other Systems | 287 |
... 8.1 ... RFC Communication Between ABAP Systems | 288 |
... ... 8.1.1 ... Synchronous RFC | 288 |
... ... 8.1.2 ... Asynchronous RFC | 288 |
... 8.2 ... Performance Aspects for the RFC Communication | 290 |
... 8.3 ... Summary | 293 |
9 ... Special Topics | 295 |
... 9.1 ... Local Update | 295 |
... ... 9.1.1 ... Asynchronous Update | 295 |
... ... 9.1.2 ... Local Update | 297 |
... 9.2 ... Parameter Passings | 298 |
... 9.3 ... Type Conversions | 299 |
... 9.4 ... Index Tables | 299 |
... 9.5 ... Saving Frontend Resources | 300 |
... 9.6 ... Saving Enqueue and Message Service | 301 |
10 ... Outlook | 303 |
... 10.1 ... Important Changes to the Tools for the Performance Analysis | 303 |
... ... 10.1.1 ... Performance Trace (Transaction ST05) | 303 |
... ... 10.1.2 ... ABAP Trace (Transaction SAT | 309 |
... 10.2 ... Important Changes to Internal Tables (Secondary Key | 314 |
... ... 10.2.1 ... Definition | 314 |
... ... 10.2.2 ... Administration Costs and Lazy Index Update | 315 |
... ... 10.2.3 ... Read Accesses | 315 |
... ... 10.2.4 ... Active Key Protection | 317 |
... ... 10.2.5 ... Delayed Index Update for Incremental Key Changes | 317 |
... ... 10.2.6 ... Summary | 318 |
A ... Execution Plans of Different Databases | 319 |
... A.1 ... General Information on Execution Plans | 319 |
... A.2 ... IBM DB2 (IBM DB2 for zSeries | 320 |
... A.3 ... IBM DB2 (DB2 for iSeries) | 323 |
... A.4 ... IBM DB2 (DB2 for LUW) | 326 |
... A.5 ... SAP MaxDB | 329 |
... A.6 ... Oracle | 332 |
... A.7 ... Microsoft SQL Server | 336 |
B ... The Author | 339 |
Комментарии по теме