Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Performance check for Report which execute in background

Former Member
0 Kudos

Hi Friends,

I have one report which execute every month end and tooks more than 6 hours (in year end it took 24 hr ::)).

The report is executed in background, so i cannnot check performance through SE30. Also ST05 will impact the other processes in production environment.

There is any way to check the performace of the object which execute only in background.

Thanks in stack

Nilesh Shete

1 ACCEPTED SOLUTION

keiji_mishima
Active Contributor
0 Kudos

Hi Nilesh

Like other person mentioned, code inspector is goods tool to check.

In other option, I recommend to follow following step.

-Before doing real analysis, check (potential) problem area. (ABAP or DB).

To do this, just check STAD after program run ( if STAD is not available), check ST03N.

If ABAP time is more than 40 % of total runtime, maybe your program might have potential to be tune from ABAP coding (like internal table operation <binary search etc>). In this case, code inspector or you might have to take ABAP trace from SE30. (Or T-CD ST12. If you use latest ST-A/PI, you can trigger ABAP trace automatically from ST12 when the background job is start. So you need not to take ABAP trace by your hand).

If DB time is more than 40 % of total runtime, maybe your program might have potential to be tune from DB access. Since the program is long running program and it runs in night time, SQL trace cannot be used. But if DB access has problem, you might be able to find out problem SQL from SQL cache. So how about checking SQL cache from ST04 after program running<Maybe if you set reset point to SQL cache, it might become more easier for you to find out related SQL>.

(If you want to specify, which table access has problem. How about to activate table statistics from ST03N. If you activate table statistics <parameter db/tabrec>, you will see top N table for which program takes long time to access in STAD.

From my experience, value 5 for this parameter might not bring negative impact on performance. So how about set value 5 for db/tabrec ?).

Best Regards

Keiji

12 REPLIES 12

0 Kudos

Hi,

May be you can try and run a CODE INSPECTOR check on this report.

SCI is the transaction of code inspector.

This can give you some tips on improving the performance.

Regards,

Sesh

0 Kudos

Is it avaliable in 46C ? I am getting message as transaction doesn't exit.

0 Kudos

Unfortunately not, I can confirm that.

The code inspector was introduced in release 4.7 as far as I know.

Kjetil Kilhavn (Vettug AS) - ABAP developer since Feb 2000

former_member186746
Active Contributor
0 Kudos

Hi Nilesh Shete,

You can run SM50 while this program is running to find out what is using the most time (probably sequential reads on database tables). After that you can check the code which is responsible for it and try to change it into something better. Or if it's caused by reads on DB tables, you can check if the archiving is set up properly.

Kind regards, Rob Dielemans

0 Kudos

thanks rob,

But the problem is, this job run only in midnight after 0000 hrs. And this is not right time to evaluate any code ::)).

But I guess, this is one of the option we can evaluate this kind of problem.

Thanks for the suggesstion.

Regards

Nilesh Shete

0 Kudos

You can also extend the code so that at certain points an entry gets written in a table. This entry should consist of the place in the code and a timestamp. This report should surely exist in the test and acceptation environment. So you can test it with sm50 there.

Kind regards, Rob Dielemans

keiji_mishima
Active Contributor
0 Kudos

Hi Nilesh

Like other person mentioned, code inspector is goods tool to check.

In other option, I recommend to follow following step.

-Before doing real analysis, check (potential) problem area. (ABAP or DB).

To do this, just check STAD after program run ( if STAD is not available), check ST03N.

If ABAP time is more than 40 % of total runtime, maybe your program might have potential to be tune from ABAP coding (like internal table operation <binary search etc>). In this case, code inspector or you might have to take ABAP trace from SE30. (Or T-CD ST12. If you use latest ST-A/PI, you can trigger ABAP trace automatically from ST12 when the background job is start. So you need not to take ABAP trace by your hand).

If DB time is more than 40 % of total runtime, maybe your program might have potential to be tune from DB access. Since the program is long running program and it runs in night time, SQL trace cannot be used. But if DB access has problem, you might be able to find out problem SQL from SQL cache. So how about checking SQL cache from ST04 after program running<Maybe if you set reset point to SQL cache, it might become more easier for you to find out related SQL>.

(If you want to specify, which table access has problem. How about to activate table statistics from ST03N. If you activate table statistics <parameter db/tabrec>, you will see top N table for which program takes long time to access in STAD.

From my experience, value 5 for this parameter might not bring negative impact on performance. So how about set value 5 for db/tabrec ?).

Best Regards

Keiji

0 Kudos

This message was moderated.

Former Member
0 Kudos

Hi,

In SE30 you can do runtimee analysis for a background job.Once the job is started click on the button Enable/Disable and then identify you background job and start your measurement ( There is button called start measurement ).I Hope this helps.

Regards,

Rajesh

0 Kudos

when the program runs in background, you could take a look at SM66 or SM50. If there is any reads on tables (sequential) you could try creating indexes for the same or try figuring out if there is any bad code in that piece of code. It also tells the program.

rgds,

raj

0 Kudos

Hi,

You can use ST04 and go to see the SQL statements listed there for this program. From there also you can come to know where more time is consumeed.

Reward if this helps

Rashit

former_member1345686
Active Participant
0 Kudos

Hi Niles,

what a big report that you have _

is the output consisted of many many rows ?

have u consider how awful it is to check the validity of your tuning modification then ?

What if you ask the end user to provide you with a smaller dataset to test,

and then test the data using the exact copy of the original program,

with which you can use ST05 or SE30 (or else) and you can even debug the program to find out the values being passed around the codes.

After improving the cloning program, you can schedule both program to run with exact variant concurrently, and get the champion.