You are on page 1of 21

10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

Products
Products Industries
Industries Support
Support Training
Training Community
Community Developer
Developer Partner
Partner

About
About

 
Ask a Question Write a Blog Post Login

Next Generation ABAP Runtime Analysis


(SAT) Introduction
January 18, 2011 | 13,611 Views |

Olga Dolinskaja
more by this author

ABAP Testing and Analysis


ABAP Development | abap | ABAP Runtime Analysis | sat | se30

share
0 share tweet share Follow

SAT is the transaction name of the new ABAP Runtime Analysis Tool,
which is one of the most signi cant improvements in ABAP in the
NetWeaver 7.0 EhP2. For those of you who are already familiar with the
transaction SE30, the former ABAP Runtime Analysis Tool, transaction
https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 1/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

SAT is the successor of SE30. In SAT, ABAP’s Runtime Analysis has been
reworked by SAP’s R&D department and has been enhanced with
e ective new analysis tools and features. 

SAT o ers bene ts such as a modern state-of-the art UI, new analysis
tools, easy navigation between tools and so on. This rst blog of the
series about SAT gives overview of the most useful SAT improvements
(particularly in comparison with the former SE30) and gives a quick
guideline how to use new features and tools of the SAT to execute
e ective runtime analysis of any ABAP application.

These series of blogs about SAT are suitable both for newbies and for
experienced SE30 users. You can nd other blogs from these series
about SAT here:

Next Generation ABAP Runtime Analysis (SAT) – How to analyze


performance

Next Generation ABAP Runtime Analysis (SAT) – How to analyze


memory consumption

Next Generation ABAP Runtime Analysis (SAT) – How to analyze


program ow

If you want to see a live demonstration of SAT, take a look at this short
video:

https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 2/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

1. Getting started
Starting a trace measurement in SAT is quite similar to SE30. There are no
major changes on the initial screen from SE30 to SAT. A new tab Evaluate has
been added to the screen. On the Evaluate tab you can take a look at trace
measurements results with their status, date of creation, total runtimes and so
on. By default your traces are shown, but you can change this by right-clicking
on the column Trace user and choosing the Set Filter.

https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 3/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

In the old SE30, internal tables were identified only by their internal names
(IT_<nn>). You will be pleased to discover, that SAT can determine and show
the real names of internal tables for the trace measurement results.

One of the benefits of SAT is a new storage system for traces. SAT stores
traces in the database. That means that you can display a trace from any
application server in the system (in SE30 only traces of the current application
server are visible). You can also keep traces for a longer time (in SE30 traces
older than one week are deleted to save file system space). When you display
a trace measurement result the first time (e.g. by you double clicking it on the
Evaluate tab), it gets formatted and written to the database.

The switch to SAT from SE30 is simple: you can still use trace files that you
created with SE30. The old trace files are moved to the database just like new
SAT traces. Keep in mind, the files will be deleted on the file system and
therefore they are not available in SE30 anymore.

2. Variants – The Basis of All Measurements


The variants are the basis of all measurements in SAT. You maintain trace
conditions and restrictions in a variant.

Before you start a measurement just press New button in the Settings area on
the SAT initial screen to create a new variant. You will see the screen with

https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 4/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

three tabs, which you already know from the SE30: Duration and type,
Statements, Program Components.

Use variants to get the trace data you need while keeping extraneous data
and storage use to a minimum. Especially for long running trace
measurements it makes sense to restrict your trace measurement as much as
possible in order to not run out of limits of your trace file size.

Here are some practical tips for using variants most efficiently to restrict a
trace:

If you run a trace for performance measurement use Per Call


Position aggregation to get one trace entry for all similar calls. If for
example the same method gets called 10 times, only one entry will be
created in the trace file, which would contain 10 as number of the hits
and the sum of the runtimes of the hits. Without aggregation 10 entries
with runtimes will be written into trace file, which results in a larger trace
file. Note: if you run a trace to follow the program flow of your
application, use “None” aggregation to get a call hierarchy in a trace.

Use Explicit Switching on and Of of Measurement option to switch


on/o the trace only where you need it, for example if you are
interested in a special part of a transaction (between screen 3 and 4).
This option allows you to switch on/off the trace during the running
ABAP program. You also must activate Limitation on Program

https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 5/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

Components on the Program Components tab. The trace will be started


as soon as you enter “/ron” (trace on) in the OK code field in your
transaction. With “/roff ” (trace off) the trace is stopped. Alternatively
you can also use the menu path: System -> Utilities -> Runtime
Analysis -> Switch On / Switch Off.

Don’t trace “everything”- restrict the statements. Remember that


about 40% of all trace records belong to the operations on internal
tables! Therefore they extremely increase the size of a trace file. You
can trace for example only Processing Blocks in a first run to find out
the relevant parts of code, and then trace most (or even all) statements
of the Statements tab and specify your found relevant code (programs,
classes, function groups…) on the Program Components tab.

Explicitly name your programs/classes/functions…on the Program


Components tab if you know beforehand which parts of the code you
want to trace. You can even specify which sub elements (like a
subroutine, function of a function group, a method of a class…) shall be
traced.

3. Running a trace measurement


After you created your trace measurement variant, you can run the trace.
Enter a name of your transaction (or program, or function module) into
corresponding input field of the In Dialog area on the initial screen and press
Execute button.

https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 6/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

If you used Explicit Switching on and Of of Measurement option in your variant


to switch on/off the trace only where you really need it, you have to activate
the trace after your ABAP program is running. Enter “/ron” (trace on)
command in the OK code field in your transaction. Alternatively you can also
use the menu path: System -> Utilities -> Runtime Analysis -> Switch On.

Your trace is running now. You can stop the trace and return to SAT by
pressing the green arrow Back button. Alternatively you can enter “/roff” (trace
off) command in the OK code field in your transaction or use the menu path:
System -> Utilities -> Runtime Analysis -> Switch Off.

https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 7/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

4. Using trace evaluation tools


After your trace measurement was executed, it’s time to analyze the trace
results. Go to the Evaluate tab on the initial screen, find your trace result and
double click it. SAT also displays trace results immediately after trace
execution if you checked the Eval. Immediately checkbox on the initial screen.

The display of the SAT is visually close to the new ABAP debugger. The user
interface consists of the desktops. You can set up each desktop as you wish,
with up to four trace evaluation tools. By default the Desktop 1 presents tools
for analyzing performance and Desktop 2 tools for analyzing program flow.

The old SE30 transaction offered only two main tools, the Hit List and the Call
Hierarchy. SAT offers a rich set of new tools to analyze different aspects of a
trace:

Hit List Tool works the same way as in SE30. It displays a hit list of all
measured statements. Identical events are summarized into one trace
line together with their execution times. But identical events from
different calling positions of source code appear as different entries in
the hit list.
Call Hierarchy Tool works the same way as in SE30. It displays
operations and events as they occur in a program.
https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 8/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

Pro le Tool shows you the runtime distribution of components,


packages, programs and even debugger layers.
Processing Blocks Tool displays a tree of processing blocks to get
aggregated view on the call sequence
Call Stack displays call stack for each item of the Call Hierarchy
Database Tables Tool identifies time-consuming database statements
Times Tool displays more specific time measurement values for the
single events of the call hierarchy.

Here is what each tool looks like. Don’t worry – the information on using each
tool follows!

Here are some guidelines when to use each tool.

To measure performance, use the Profile Tool in combination with


the Hit List Tool. The benefit of the Profile Tool is that you can start a
trace evaluation at your application component (e.g. FI or HR) and drill
down the trace results view through the sub-components and their
packages to follow up on the top performance consumers. Afterwards
you can display the subarea of a detected performance consumer in the
Hit List Tool to analyze its trace events. It saves your time and you get a

https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 9/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

short and transparent Hit List which is easier to understand.If you want
to see how it works, take a look at this blog Next Generation ABAP
Runtime Analysis (SAT) – How to analyze performance

To analyze program ow, use the Call Hierarchy Tool in


combination with the Call Stack and Processing Blocks Tools. You
can use Call Hierarchy to display trace events the way they were called
by the program. Since the display of the Call Hierarchy is a little large,
you can display a Call Stack for a chosen event of the Call Hierarchy or
just choose the event and position its display in the Processing Blocks
Tool. There you will see all processing blocks (methods, functions, etc.)
you configured in your trace measurement variant and can better follow
the call hierarchy of the trace event and even display the critical
processing blocks in terms of consumed runtime or memory.If you want
to see how it works, take a look at this blog Next Generation ABAP
Runtime Analysis (SAT) – How to analyze program ow

To display detailed information on runtimes in the Call Hierarchy,


use the Times Tool. For example Times Tool shows a distribution of
runtimes across non-system and system programs.

Identify time-consuming database operations and accesses to


bu ered tables with the Database Tables Tool. By using easy
navigation of SAT you can display the subarea in the detailed Hit List
Tool to follow the runtime distribution of database accesses, or position
in the Call Hierarchy (and e.g. display a Call Stack) to follow the callers
of the database access.

4. Working with user interface


Here are some guidelines for efficient work with the SAT toolset and user
interface.

Display more details on a speci c entry by using Display subarea


in… buttons. In some tools you can navigate from the overall view to

https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 10/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

the details of the specific entry. Use the Overall view (funnel button) to
get back to the overall view.

Navigate comfortably between tools by choosing Position in the…


buttons. Working with multiple trace evaluation tools requires easy
navigation between them. By setting the cursor on the trace entry in
one tool and using Position in the… command of the right-mouse button
menu you can easily take a look at this entry in another tool. For
example switch from the Hit List to the Call Hierarchy.

Focus on a speci c sub hierarchy by using Con ne to Subarea


button. This command confines the data in all tools to the statements
that lie in the sub hierarchy of the selected node.

https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 11/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

And some more common user interface features in the tools:

Use Additional information button to show more elds in the tool


display. You can choose for example to display a package, a software
component or a person responsible.
Use Display Call Stack button to show the call stack for a selected
entry. This feature is available only within Call Hierarchy.
Toggle between absolute and percentage runtimes by using
“Absolute/Percentage Times” button. If you choose this button, SAT
toggles between displaying the runtimes as an absolute value or as a
percentage of the total runtime.

5. Comparing traces
In SAT you can compare two compatible traces. You can use the comparison
tools to analyze in detail the behavior of the application you are measuring.
SAT offers two trace comparison tools: Hit List Comparison and Call Hierarchy
Comparison.

To start the trace comparison just mark two compatible traces on the Evaluate
tab and press Compare measurements button. You can not only compare the
traces of different application servers of the system, but also the traces of
completely different systems. This could be useful if for example a program
behaves differently in development and production systems, and you need to
find out the reason. Just select one of the comparison traces on the Evaluate
tab and send it to another system via RFC call by clicking Send Measurement

https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 12/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

via RFC button. Alternatively you can download a trace to a file and upload it
on the target system.

Here are some guidelines for using trace comparisons effectively.

To check your application for scalability, use the Hit List


Comparison. Trace your program twice, the first time with a smaller
amount of test data and the second time with a larger amount of test
data. Then compare the traces. You can take a look at the ratio of the
net times of events in both traces. If you know the factor by which you
have multiplied the amount of test data in the second measurement,
you can examine the results and check if the net time ratios are greater
than the factor.

To check the e ect of changes to your code, use the Hit List
Comparison. You have optimized a critical portion of your code? You
can check that the improvements work as you expect with the Hit List
Comparison. Trace the old code and then the new code using the same
set of test data. Then check for changes in the runtime in the trace
comparison.

https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 13/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

To identify branches in the program that were not executed in a


previous program execution use Call Hierarchy Comparison. This
could happen if for example the program sources have changed since
the last measurement, or if you use different starting parameters or
different custom data and so on.

This is basically everything you need to know about SAT before starting work
with it. For more information on special usage scenarios of SAT like
performance analysis, program flow analysis or memory consumption analysis
read specialized blogs of these SAT series mentioned in the beginning of this
blog.

There is also a detailed application support (F1 help) for using SAT and its
tools integrated in the SAT transaction. Just take a look at it at your leisure.

Alert Moderator

17 Comments
You must be Logged on to comment or reply to a post.

Ulrich Brenner

January 18, 2011 at 2:03 am

Wow this blog series is quite impressive. ! 8)


I guess it would be a successful project to contact SAP’s ELearning-division (aka Thomas

https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 14/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

Jung) to produce a 45-min-video of this.

Olga Dolinskaja Post author

January 18, 2011 at 2:38 am

Hi Ulrich,

I ahev already posted a detailed eLearning video about SAT (link is


included in the beginning of this blog!).

Regards,
Olga.

Ramesh Babu Srikakollu

February 2, 2011 at 9:13 pm

Helpful information…

Former Member

February 3, 2011 at 8:48 pm

Great work!!!

very usefull information. Thank you.

Regards,
Vinod.

Former Member

February 17, 2011 at 12:52 am

Hi Olga,

https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 15/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

We are in netweaver 7.1 EhP5, I am not able to see the options you mentioned above.
For example you have a check box under “Data Formatting” to Determine names of
Internal tables.

Many of the menu paths mentioned are not seen.

Kindly advice.

Thanks,
Navneeth K.

Former Member

August 8, 2013 at 3:50 pm

Hi Olga,

Can SAT be used for WebDynpro Application, if yes, how?

Warm Regards,

Vijay

Olga Dolinskaja Post author

August 9, 2013 at 9:10 pm

Hi Vijay,

yes, SAT can be used for WebDynpro applications. Please take a look at
the part 4 (“How to trace HTTP/RFC requests…”) of the blog “SAT – How to
analyze program flow” linked above in this blog. The live step-by-step
demonstration of tracing HTTP requests of a WebDynrpo application is
recorded in the SAT Video linked also in this blog.

Best Regards,

Olga.

https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 16/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

Andy Silvey

January 13, 2014 at 11:11 am

Hi Olga,

thank you fortaking the time to publish this series of blogs.

This is excellent.

Best regards,

Andy.

Former Member

January 29, 2014 at 11:02 pm

Hi Olga,

Thanks for this article. I was trying to use SAT for parallel processing. My job keeps on
using the dialog work processes once they are available and keeps running these work
processes in back ground. I am facing the issue having a trace on a specific work
process. Once I activate the trace on work process, i wont be knowing by when it will
exactly end the current work process and whether the next job has been allocated to this
work process or not. If I have to use st12 through SM50, it works fine to collect the trace
to measure till the end of the work process even if i wont bother to switch off the trace
before next job kicks in. But through SAT it is never the case, it either wont collect the
trace or it wont show up any thing. Is there a way to collect the trace on time bound.

Former Member

April 13, 2015 at 4:19 pm

Excellent post!!

I have a question, it is a special security ROLE that my user must be granted before use
completely the SAT transaction?. I activated the measurement over a running process
but after switch off the trace it does not caught any information.

Best regards.
https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 17/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

Carlos Ron.

Olga Dolinskaja Post author

April 14, 2015 at 7:13 am

Hi Carlos,

you just need your usual developer role. Please make sure, you start and
stop the trace correctly and use the appropriate variant. Try to follow the
steps in the linked video on top of the blog.

I hope this will help…

Best regards,

Olga.

Former Member

April 14, 2015 at 2:27 pm

Thank you for answer me.

It works fine now.

Regards.

Carlos.

Former Member

February 16, 2016 at 2:54 pm

Hi Olga, this is the best(and only?) SAT material I could find in SCN. Thanks for such an
informative and well organized document.

Earlier I have used the SAT tool, and I was able to use all of its options. Now while I am
trying, I do not find all the options/tabs in the ‘Display Measurement’ after the program
run. I do not find the following tabs:

https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 18/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

1. Desktop2
2. Processing Blocks
3. Call Hierarchy

Processing blocks and call hierarchy were a lot helpful. Please find the attachment.

I am not sure if this is a security/authorization or settings related issue. I want to know


how to enable all the result tabs back. It would be great if you can direct me on this.

Thanks,

Anish

Smriti Gupta

January 19, 2018 at 9:29 pm

Hello Olga,

Thanks a ton for your effort in creating this exhaustive blog. I have a question pls. I
want to obtain traces of a night job which runs over a period of 18 hours! Would SQLM
be the best transaction for this ? If a report takes 2 hours to execute, can I get traces
with SAT? could you pls confirm

Thanks

smriti

https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 19/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

Olga Dolinskaja Post author

January 22, 2018 at 8:54 am

Hi Smriti,

you can turn on SQLM for a long period of time, but it measures only
expensive SQL statements (not the program logic). SQLM is the tool for
performance analysis of SQLs at productive operation. SAT is actually the
tool which also detects the performance problems within ABAP code as well
and you can use it to analyze e.g. the long running programs (like your 2h
running program). Take a look at the “How to analyze performance” blog
linked above.

Regards,

Olga.

Smriti Gupta

January 22, 2018 at 9:04 am

Hello Olga,

Thanks a ton for replying. As I am still resolving this issue so your timely reply is a
wonderful support for me:) So if a report runs over 3 to 4 hours, can SAT record the log?
Could you pls confirm? I am rightaway see your blog too.

Many thanks

Smriti

Olga Dolinskaja Post author

https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 20/21
10/21/2018 Next Generation ABAP Runtime Analysis (SAT) Introduction | SAP Blogs

January 22, 2018 at 10:23 am

Hi Smriti,

as I’ve said before: in general it is possible to analyze a long running report


with SAT. Just try it out and you will see, if it works for your specific use
case.

Regards,

Olga.

Share & Follow

Privacy Terms of Use

Legal Disclosure Copyright

Trademark Sitemap

Newsletter

https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-introduction/ 21/21