<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Performance Tunning in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tunning/m-p/3244919#M774479</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mukesh,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can see why the performance is an issue in your code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;First of all you should not use more than 5 INNER JOINS in any select querry. Inner Joins are not always a better solution.&lt;/P&gt;&lt;P&gt;What you can do is create separate internal table for Selection from ADRC,T001W, KNA1, VBUP and use For all entries option with Inner join.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The Idea is to select only those records which are required and get rid of unneccary selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This should increase the performance of your code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sample code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---SELECTION MADE FOR REJECT QUANTITY&lt;/P&gt;&lt;P&gt;    SELECT T5~MBLNR&lt;/P&gt;&lt;P&gt;           T5~MJAHR&lt;/P&gt;&lt;P&gt;           T6~MATNR&lt;/P&gt;&lt;P&gt;           T6~MENGE&lt;/P&gt;&lt;P&gt;           INTO  TABLE I_MSEG&lt;/P&gt;&lt;P&gt;           FROM MKPF AS T5 INNER JOIN MSEG AS T6&lt;/P&gt;&lt;P&gt;             ON T5&lt;SUB&gt;MBLNR = T6&lt;/SUB&gt;MBLNR AND&lt;/P&gt;&lt;P&gt;                T5&lt;SUB&gt;MJAHR = T6&lt;/SUB&gt;MJAHR &lt;STRONG&gt;FOR ALL ENTRIES IN I_ITAB1&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;            WHERE T5~BUDAT IN S_START AND&lt;/P&gt;&lt;P&gt;                  T6~MATNR = I_ITAB1-MATNR  AND&lt;/P&gt;&lt;P&gt;                  T6~BWART = C_BWART AND&lt;/P&gt;&lt;P&gt;                  T6~AUFNR = I_ITAB1-AUFNR.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Reward points if this helps.&lt;/P&gt;&lt;P&gt;Manish&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 31 Dec 2007 09:56:02 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-12-31T09:56:02Z</dc:date>
    <item>
      <title>Performance Tunning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tunning/m-p/3244918#M774478</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Friends,&lt;/P&gt;&lt;P&gt;   I have an ZREPORT in SD, its taking long time during execution, so in T-code : SE30 i had done its run time analysis  the readings where,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ABAP -&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt;  85 % &lt;/P&gt;&lt;P&gt;DB   -&lt;/P&gt;&lt;HR originaltext="------" /&gt;&lt;P&gt; 10 %&lt;/P&gt;&lt;P&gt;system---- 5 %,&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;         i also done the sql trace in ST05 , its showing maximum time taken for the select statement given below ( down )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT a&lt;SUB&gt;vbeln  a&lt;/SUB&gt;auart  a~audat&lt;/P&gt;&lt;P&gt;         a&lt;SUB&gt;kunnr  a&lt;/SUB&gt;bstnk  a~bstdk&lt;/P&gt;&lt;P&gt;         a&lt;SUB&gt;vtweg  a&lt;/SUB&gt;vkorg  a~knumv&lt;/P&gt;&lt;P&gt;         a&lt;SUB&gt;waerk  b&lt;/SUB&gt;werks  b~pstyv&lt;/P&gt;&lt;P&gt;         b&lt;SUB&gt;posnr  b&lt;/SUB&gt;matnr  b~kwmeng&lt;/P&gt;&lt;P&gt;         b&lt;SUB&gt;netpr  c&lt;/SUB&gt;spart  c~extwg&lt;/P&gt;&lt;P&gt;         c&lt;SUB&gt;ferth  c&lt;/SUB&gt;mtart  d~maktx&lt;/P&gt;&lt;P&gt;         h&lt;SUB&gt;lfsta  h&lt;/SUB&gt;lfgsa  e~kdgrp&lt;/P&gt;&lt;P&gt;         f&lt;SUB&gt;name1  f&lt;/SUB&gt;ort01  g~country&lt;/P&gt;&lt;P&gt;         j~sort1&lt;/P&gt;&lt;P&gt;         INTO CORRESPONDING FIELDS OF TABLE it_result&lt;/P&gt;&lt;P&gt;               FROM vbak AS a&lt;/P&gt;&lt;P&gt;         INNER JOIN vbap AS b ON a&lt;SUB&gt;vbeln = b&lt;/SUB&gt;vbeln&lt;/P&gt;&lt;P&gt;         INNER JOIN mara AS c ON c&lt;SUB&gt;matnr = b&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;         INNER JOIN makt AS d ON d&lt;SUB&gt;matnr = b&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;         INNER JOIN knvv AS e ON e&lt;SUB&gt;kunnr = a&lt;/SUB&gt;kunnr&lt;/P&gt;&lt;P&gt;         INNER JOIN kna1 AS f ON f&lt;SUB&gt;kunnr = e&lt;/SUB&gt;kunnr&lt;/P&gt;&lt;P&gt;         INNER JOIN adrc AS g ON g&lt;SUB&gt;ADDRNUMBER = f&lt;/SUB&gt;adrnr&lt;/P&gt;&lt;P&gt;         INNER JOIN vbup AS h ON b&lt;SUB&gt;vbeln = h&lt;/SUB&gt;vbeln AND&lt;/P&gt;&lt;P&gt;                                 b&lt;SUB&gt;posnr = h&lt;/SUB&gt;posnr&lt;/P&gt;&lt;P&gt;         INNER JOIN t001w AS i ON b&lt;SUB&gt;werks = i&lt;/SUB&gt;werks&lt;/P&gt;&lt;P&gt;         INNER JOIN adrc AS j ON i&lt;SUB&gt;adrnr = j&lt;/SUB&gt;addrnumber&lt;/P&gt;&lt;P&gt;         WHERE a~vkorg EQ pr_vkorg AND&lt;/P&gt;&lt;P&gt;               a~vtweg EQ pr_vtweg AND&lt;/P&gt;&lt;P&gt;               a~auart IN so_auart AND&lt;/P&gt;&lt;P&gt;               a~audat IN so_audat AND&lt;/P&gt;&lt;P&gt;               a~vbeln IN so_vbeln AND&lt;/P&gt;&lt;P&gt;               b~werks IN so_werks AND&lt;/P&gt;&lt;P&gt;               b~abgru EQ ' '      AND&lt;/P&gt;&lt;P&gt;               a~kunnr IN so_kunnr AND&lt;/P&gt;&lt;P&gt;               f~name1 IN so_name1 AND&lt;/P&gt;&lt;P&gt;               e~kdgrp IN so_kdgrp AND&lt;/P&gt;&lt;P&gt;               g~country IN so_ctry AND&lt;/P&gt;&lt;P&gt;               b~matnr IN so_matnr AND&lt;/P&gt;&lt;P&gt;               d~maktx IN so_maktx AND&lt;/P&gt;&lt;P&gt;               c~spart IN so_spart AND&lt;/P&gt;&lt;P&gt;               c~ferth IN so_ferth AND&lt;/P&gt;&lt;P&gt;               c~mtart IN so_mtart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i have also created an INDEX for table VBAK for the fields used in these select statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SO what should i do to improve the analysis,,,,, and what should be the normal readings of ABAP DB and system values in SE30.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or should i change the select satatement&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Kumar M&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 31 Dec 2007 09:32:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tunning/m-p/3244918#M774478</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-31T09:32:04Z</dc:date>
    </item>
    <item>
      <title>Re: Performance Tunning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tunning/m-p/3244919#M774479</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mukesh,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can see why the performance is an issue in your code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;First of all you should not use more than 5 INNER JOINS in any select querry. Inner Joins are not always a better solution.&lt;/P&gt;&lt;P&gt;What you can do is create separate internal table for Selection from ADRC,T001W, KNA1, VBUP and use For all entries option with Inner join.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The Idea is to select only those records which are required and get rid of unneccary selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This should increase the performance of your code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sample code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---SELECTION MADE FOR REJECT QUANTITY&lt;/P&gt;&lt;P&gt;    SELECT T5~MBLNR&lt;/P&gt;&lt;P&gt;           T5~MJAHR&lt;/P&gt;&lt;P&gt;           T6~MATNR&lt;/P&gt;&lt;P&gt;           T6~MENGE&lt;/P&gt;&lt;P&gt;           INTO  TABLE I_MSEG&lt;/P&gt;&lt;P&gt;           FROM MKPF AS T5 INNER JOIN MSEG AS T6&lt;/P&gt;&lt;P&gt;             ON T5&lt;SUB&gt;MBLNR = T6&lt;/SUB&gt;MBLNR AND&lt;/P&gt;&lt;P&gt;                T5&lt;SUB&gt;MJAHR = T6&lt;/SUB&gt;MJAHR &lt;STRONG&gt;FOR ALL ENTRIES IN I_ITAB1&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;            WHERE T5~BUDAT IN S_START AND&lt;/P&gt;&lt;P&gt;                  T6~MATNR = I_ITAB1-MATNR  AND&lt;/P&gt;&lt;P&gt;                  T6~BWART = C_BWART AND&lt;/P&gt;&lt;P&gt;                  T6~AUFNR = I_ITAB1-AUFNR.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Reward points if this helps.&lt;/P&gt;&lt;P&gt;Manish&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 31 Dec 2007 09:56:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tunning/m-p/3244919#M774479</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-31T09:56:02Z</dc:date>
    </item>
    <item>
      <title>Re: Performance Tunning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tunning/m-p/3244920#M774480</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Mukesh,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your select statement has way too many inner joins. Try using the following code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_vbak,&lt;/P&gt;&lt;P&gt;         vbeln TYPE vbak-vbeln,&lt;/P&gt;&lt;P&gt;         auart TYPE vbak-auart,&lt;/P&gt;&lt;P&gt;         audat TYPE vbak-audat,&lt;/P&gt;&lt;P&gt;         kunnr TYPE vbak-kunnr,&lt;/P&gt;&lt;P&gt;         bstnk TYPE vbak-bstnk,&lt;/P&gt;&lt;P&gt;         bstdk TYPE vbak-bstdk,&lt;/P&gt;&lt;P&gt;         vtweg TYPE vbak-vtweg,&lt;/P&gt;&lt;P&gt;         vkorg TYPE vbak-vkorg,&lt;/P&gt;&lt;P&gt;         spart TYPE vbak-spart,&lt;/P&gt;&lt;P&gt;         knumv TYPE vbak-knumv,&lt;/P&gt;&lt;P&gt;         waerk TYPE vbak-waerk,&lt;/P&gt;&lt;P&gt;       END OF ty_vbak,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       BEGIN OF ty_vbap,&lt;/P&gt;&lt;P&gt;         vbeln  TYPE vbap-vbeln ,&lt;/P&gt;&lt;P&gt;         posnr  TYPE vbap-posnr ,&lt;/P&gt;&lt;P&gt;         werks  TYPE vbap-werks ,&lt;/P&gt;&lt;P&gt;         pstyv  TYPE vbap-pstyv ,&lt;/P&gt;&lt;P&gt;         matnr  TYPE vbap-matnr ,&lt;/P&gt;&lt;P&gt;         kwmeng TYPE vbap-kwmeng,&lt;/P&gt;&lt;P&gt;         netpr  type vbap-netpr ,&lt;/P&gt;&lt;P&gt;       END OF ty_vbap,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       BEGIN OF ty_mara,&lt;/P&gt;&lt;P&gt;         matnr TYPE mara-matnr,&lt;/P&gt;&lt;P&gt;         spart TYPE mara-spart,&lt;/P&gt;&lt;P&gt;         extwg TYPE mara-extwg,&lt;/P&gt;&lt;P&gt;         ferth TYPE mara-ferth,&lt;/P&gt;&lt;P&gt;         mtart TYPE mara-mtart,&lt;/P&gt;&lt;P&gt;       END OF ty_mara,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       BEGIN OF ty_makt,&lt;/P&gt;&lt;P&gt;         matnr TYPE makt-matnr,&lt;/P&gt;&lt;P&gt;         maktx TYPE makt-maktx,&lt;/P&gt;&lt;P&gt;       END OF ty_makt,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       BEGIN OF ty_knvv,&lt;/P&gt;&lt;P&gt;         kunnr TYPE knvv-kunnr,&lt;/P&gt;&lt;P&gt;         vkorg TYPE knvv-vkorg,&lt;/P&gt;&lt;P&gt;         vtweg TYPE knvv-vtweg,&lt;/P&gt;&lt;P&gt;         spart TYPE knvv-spart,&lt;/P&gt;&lt;P&gt;         kdgrp TYPE knvv-kdgrp,&lt;/P&gt;&lt;P&gt;       END OF ty_knvv,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       BEGIN OF ty_kna1,&lt;/P&gt;&lt;P&gt;         kunnr TYPE kna1-kunnr,&lt;/P&gt;&lt;P&gt;         name1 TYPE kna1-name1,&lt;/P&gt;&lt;P&gt;         ort01 TYPE kna1-ort01,&lt;/P&gt;&lt;P&gt;         adrnr TYPE kna1-adrnr,&lt;/P&gt;&lt;P&gt;       END OF ty_kna1,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       BEGIN OF ty_adrc,&lt;/P&gt;&lt;P&gt;         addrnumber TYPE adrc-addrnumber,&lt;/P&gt;&lt;P&gt;         country    TYPE adrc-country   ,&lt;/P&gt;&lt;P&gt;         sort1      TYPE adrc-sort1     ,&lt;/P&gt;&lt;P&gt;       END OF ty_adrc,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       BEGIN OF ty_vbup,&lt;/P&gt;&lt;P&gt;         vbeln TYPE vbup-vbeln,&lt;/P&gt;&lt;P&gt;         posnr TYPE vbup-posnr,&lt;/P&gt;&lt;P&gt;         lfsta TYPE vbup-lfsta,&lt;/P&gt;&lt;P&gt;         lfgsa TYPE vbup-lfgsa,&lt;/P&gt;&lt;P&gt;       END OF ty_vbup,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       BEGIN OF ty_result,&lt;/P&gt;&lt;P&gt;         vbeln   TYPE vbak-vbeln  ,&lt;/P&gt;&lt;P&gt;         auart   TYPE vbak-auart  ,&lt;/P&gt;&lt;P&gt;         audat   TYPE vbak-audat  ,&lt;/P&gt;&lt;P&gt;         kunnr   TYPE vbak-kunnr  ,&lt;/P&gt;&lt;P&gt;         bstnk   TYPE vbak-bstnk  ,&lt;/P&gt;&lt;P&gt;         bstdk   TYPE vbak-bstdk  ,&lt;/P&gt;&lt;P&gt;         vtweg   TYPE vbak-vtweg  ,&lt;/P&gt;&lt;P&gt;         vkorg   TYPE vbak-vkorg  ,&lt;/P&gt;&lt;P&gt;         knumv   TYPE vbak-knumv  ,&lt;/P&gt;&lt;P&gt;         waerk   TYPE vbak-waerk  ,&lt;/P&gt;&lt;P&gt;         werks   TYPE vbap-werks  ,&lt;/P&gt;&lt;P&gt;         pstyv   TYPE vbap-pstyv  ,&lt;/P&gt;&lt;P&gt;         posnr   TYPE vbap-posnr  ,&lt;/P&gt;&lt;P&gt;         matnr   TYPE vbap-matnr  ,&lt;/P&gt;&lt;P&gt;         kwmeng  TYPE vbap-kwmeng ,&lt;/P&gt;&lt;P&gt;         netpr   TYPE vbap-netpr  ,&lt;/P&gt;&lt;P&gt;         spart   TYPE mara-spart  ,&lt;/P&gt;&lt;P&gt;         extwg   TYPE mara-extwg  ,&lt;/P&gt;&lt;P&gt;         ferth   TYPE mara-ferth  ,&lt;/P&gt;&lt;P&gt;         mtart   TYPE mara-mtart  ,&lt;/P&gt;&lt;P&gt;         maktx   TYPE makt-maktx  ,&lt;/P&gt;&lt;P&gt;         lfsta   TYPE vbup-lfsta  ,&lt;/P&gt;&lt;P&gt;         lfgsa   TYPE vbup-lfgsa  ,&lt;/P&gt;&lt;P&gt;         kdgrp   TYPE knvv-kdgrp  ,&lt;/P&gt;&lt;P&gt;         name1   TYPE kna1-name1  ,&lt;/P&gt;&lt;P&gt;         ort01   TYPE kna1-ort01  ,&lt;/P&gt;&lt;P&gt;         country TYPE adrc-country,&lt;/P&gt;&lt;P&gt;         sort1   TYPE adrc-sort1  ,&lt;/P&gt;&lt;P&gt;       END OF ty_result.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: w_vbap     TYPE                 ty_vbap  ,&lt;/P&gt;&lt;P&gt;      w_vbak     TYPE                 ty_vbak  ,&lt;/P&gt;&lt;P&gt;      w_mara     TYPE                 ty_mara  ,&lt;/P&gt;&lt;P&gt;      w_makt     TYPE                 ty_makt  ,&lt;/P&gt;&lt;P&gt;      w_knvv     TYPE                 ty_knvv  ,&lt;/P&gt;&lt;P&gt;      w_kna1     TYPE                 ty_kna1  ,&lt;/P&gt;&lt;P&gt;      w_adrc     TYPE                 ty_adrc  ,&lt;/P&gt;&lt;P&gt;      w_vbup     TYPE                 ty_vbup  ,&lt;/P&gt;&lt;P&gt;      w_result   TYPE                 ty_result,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      t_vbak     TYPE HASHED TABLE OF ty_vbak&lt;/P&gt;&lt;P&gt;        WITH UNIQUE KEY vbeln,&lt;/P&gt;&lt;P&gt;      t_vbak_tmp TYPE        TABLE OF ty_vbak,&lt;/P&gt;&lt;P&gt;      t_vbap     TYPE        TABLE OF ty_vbap,&lt;/P&gt;&lt;P&gt;      t_vbap_tmp TYPE        TABLE OF ty_vbap,&lt;/P&gt;&lt;P&gt;      t_mara     TYPE HASHED TABLE OF ty_mara&lt;/P&gt;&lt;P&gt;        WITH UNIQUE KEY matnr,&lt;/P&gt;&lt;P&gt;      t_makt     TYPE HASHED TABLE OF ty_makt&lt;/P&gt;&lt;P&gt;        WITH UNIQUE KEY matnr,&lt;/P&gt;&lt;P&gt;      t_knvv     TYPE HASHED TABLE OF ty_knvv&lt;/P&gt;&lt;P&gt;        WITH UNIQUE KEY kunnr vkorg vtweg spart,&lt;/P&gt;&lt;P&gt;      t_kna1     TYPE HASHED TABLE OF ty_kna1&lt;/P&gt;&lt;P&gt;        WITH UNIQUE KEY kunnr,&lt;/P&gt;&lt;P&gt;      t_kna1_tmp TYPE        TABLE OF ty_kna1,&lt;/P&gt;&lt;P&gt;      t_adrc     TYPE SORTED TABLE OF ty_adrc&lt;/P&gt;&lt;P&gt;        WITH NON-UNIQUE KEY addrnumber,&lt;/P&gt;&lt;P&gt;      t_vbup     TYPE HASHED TABLE OF ty_vbup&lt;/P&gt;&lt;P&gt;        WITH UNIQUE KEY vbeln posnr,&lt;/P&gt;&lt;P&gt;      t_result   TYPE        TABLE OF ty_result.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT vbeln&lt;/P&gt;&lt;P&gt;       auart&lt;/P&gt;&lt;P&gt;       audat&lt;/P&gt;&lt;P&gt;       kunnr&lt;/P&gt;&lt;P&gt;       bstnk&lt;/P&gt;&lt;P&gt;       bstdk&lt;/P&gt;&lt;P&gt;       vtweg&lt;/P&gt;&lt;P&gt;       vkorg&lt;/P&gt;&lt;P&gt;       spart&lt;/P&gt;&lt;P&gt;       knumv&lt;/P&gt;&lt;P&gt;       waerk&lt;/P&gt;&lt;P&gt;  FROM vbak&lt;/P&gt;&lt;P&gt;  INTO TABLE t_vbak&lt;/P&gt;&lt;P&gt;  WHERE vbeln IN so_vbeln&lt;/P&gt;&lt;P&gt;  AND   audat IN so_audat&lt;/P&gt;&lt;P&gt;  AND   auart IN so_auart&lt;/P&gt;&lt;P&gt;  AND   vkorg EQ pr_vkorg&lt;/P&gt;&lt;P&gt;  AND   vtweg EQ pr_vtweg&lt;/P&gt;&lt;P&gt;  AND   kunnr IN so_kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT vbeln&lt;/P&gt;&lt;P&gt;         posnr&lt;/P&gt;&lt;P&gt;         werks&lt;/P&gt;&lt;P&gt;         pstyv&lt;/P&gt;&lt;P&gt;         matnr&lt;/P&gt;&lt;P&gt;         kwmeng&lt;/P&gt;&lt;P&gt;         netpr&lt;/P&gt;&lt;P&gt;    FROM vbap&lt;/P&gt;&lt;P&gt;    INTO TABLE t_vbap&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN t_vbak&lt;/P&gt;&lt;P&gt;    WHERE vbeln EQ t_vbak-vbeln&lt;/P&gt;&lt;P&gt;    AND   abgru EQ space&lt;/P&gt;&lt;P&gt;    AND   werks IN so_werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT vbeln&lt;/P&gt;&lt;P&gt;           posnr&lt;/P&gt;&lt;P&gt;           lfsta&lt;/P&gt;&lt;P&gt;           lfgsa&lt;/P&gt;&lt;P&gt;      FROM vbup&lt;/P&gt;&lt;P&gt;      INTO TABLE t_vbup&lt;/P&gt;&lt;P&gt;      FOR ALL ENTRIES IN t_vbap&lt;/P&gt;&lt;P&gt;      WHERE vbeln EQ t_vbap-vbeln&lt;/P&gt;&lt;P&gt;      AND   posnr EQ t_vbap-posnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_vbap_tmp[] = t_vbap[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT t_vbap_tmp BY matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DELETE ADJACENT DUPLICATES FROM t_vbap_tmp COMPARING matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT matnr&lt;/P&gt;&lt;P&gt;           spart&lt;/P&gt;&lt;P&gt;           extwg&lt;/P&gt;&lt;P&gt;           ferth&lt;/P&gt;&lt;P&gt;           mtart&lt;/P&gt;&lt;P&gt;      FROM mara&lt;/P&gt;&lt;P&gt;      INTO TABLE t_mara&lt;/P&gt;&lt;P&gt;      FOR ALL ENTRIES IN t_vbap_tmp&lt;/P&gt;&lt;P&gt;      WHERE matnr EQ t_vbap_tmp-matnr&lt;/P&gt;&lt;P&gt;      AND   mtart IN so_mtart&lt;/P&gt;&lt;P&gt;      AND   ferth IN so_ferth&lt;/P&gt;&lt;P&gt;      AND   spart IN so_spart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT matnr&lt;/P&gt;&lt;P&gt;             maktx&lt;/P&gt;&lt;P&gt;        FROM makt&lt;/P&gt;&lt;P&gt;        INTO TABLE t_makt&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN t_mara&lt;/P&gt;&lt;P&gt;        WHERE matnr EQ t_mara-matnr&lt;/P&gt;&lt;P&gt;        AND   spras EQ sy-langu.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  t_vbak_tmp[] = t_vbak[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT t_vbak_tmp BY kunnr vkorg vtweg spart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DELETE ADJACENT DUPLICATES FROM t_vbak_tmp&lt;/P&gt;&lt;P&gt;    COMPARING kunnr vkorg vtweg spart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT kunnr&lt;/P&gt;&lt;P&gt;         vkorg&lt;/P&gt;&lt;P&gt;         vtweg&lt;/P&gt;&lt;P&gt;         spart&lt;/P&gt;&lt;P&gt;         kdgrp&lt;/P&gt;&lt;P&gt;    FROM knvv&lt;/P&gt;&lt;P&gt;    INTO TABLE t_knvv&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN t_vbak_tmp&lt;/P&gt;&lt;P&gt;    WHERE kunnr EQ t_vbak_tmp-kunnr&lt;/P&gt;&lt;P&gt;    AND   vkorg EQ t_vbak_tmp-vkorg&lt;/P&gt;&lt;P&gt;    AND   vtweg EQ t_vbak_tmp-vtweg&lt;/P&gt;&lt;P&gt;    AND   spart EQ t_vbak_tmp-spart&lt;/P&gt;&lt;P&gt;    AND   kdgrp IN so_kdgrp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DELETE ADJACENT DUPLICATES FROM t_vbak_tmp COMPARING kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT kunnr&lt;/P&gt;&lt;P&gt;         name1&lt;/P&gt;&lt;P&gt;         ort01&lt;/P&gt;&lt;P&gt;         adrnr&lt;/P&gt;&lt;P&gt;    FROM kna1&lt;/P&gt;&lt;P&gt;    INTO TABLE t_kna1&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN t_vbak_tmp&lt;/P&gt;&lt;P&gt;    WHERE kunnr EQ t_vbak_tmp-kunnr&lt;/P&gt;&lt;P&gt;    AND   name1 IN so_name1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_kna1_tmp[] = t_kna1[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT t_kna1_tmp BY adrnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DELETE ADJACENT DUPLICATES FROM t_kna1_tmp COMPARING adrnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT addrnumber&lt;/P&gt;&lt;P&gt;           country&lt;/P&gt;&lt;P&gt;           sort1&lt;/P&gt;&lt;P&gt;      FROM adrc&lt;/P&gt;&lt;P&gt;      INTO TABLE t_adrc&lt;/P&gt;&lt;P&gt;      FOR ALL ENTRIES IN t_kna1_tmp&lt;/P&gt;&lt;P&gt;      WHERE addrnumber EQ t_kna1_tmp-adrnr&lt;/P&gt;&lt;P&gt;      AND   date_from  LE sy-datum&lt;/P&gt;&lt;P&gt;      AND   date_to    GE sy-datum&lt;/P&gt;&lt;P&gt;      AND   country    IN so_ctry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REFRESH t_result.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT t_vbap INTO w_vbap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE t_vbak INTO w_vbak&lt;/P&gt;&lt;P&gt;    WITH KEY vbeln = w_vbap-vbeln&lt;/P&gt;&lt;P&gt;    TRANSPORTING&lt;/P&gt;&lt;P&gt;      auart&lt;/P&gt;&lt;P&gt;      audat&lt;/P&gt;&lt;P&gt;      kunnr&lt;/P&gt;&lt;P&gt;      bstnk&lt;/P&gt;&lt;P&gt;      bstdk&lt;/P&gt;&lt;P&gt;      vtweg&lt;/P&gt;&lt;P&gt;      vkorg&lt;/P&gt;&lt;P&gt;      spart&lt;/P&gt;&lt;P&gt;      knumv&lt;/P&gt;&lt;P&gt;      waerk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE t_mara INTO w_mara&lt;/P&gt;&lt;P&gt;    WITH KEY matnr = w_vbap-matnr&lt;/P&gt;&lt;P&gt;    TRANSPORTING&lt;/P&gt;&lt;P&gt;      spart&lt;/P&gt;&lt;P&gt;      extwg&lt;/P&gt;&lt;P&gt;      ferth&lt;/P&gt;&lt;P&gt;      mtart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE t_makt INTO w_makt&lt;/P&gt;&lt;P&gt;    WITH KEY matnr = w_vbap-matnr&lt;/P&gt;&lt;P&gt;    TRANSPORTING&lt;/P&gt;&lt;P&gt;      maktx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE t_knvv INTO w_knvv&lt;/P&gt;&lt;P&gt;    WITH KEY kunnr = w_vbak-kunnr&lt;/P&gt;&lt;P&gt;             vkorg = w_vbak-vkorg&lt;/P&gt;&lt;P&gt;             vtweg = w_vbak-vtweg&lt;/P&gt;&lt;P&gt;             spart = w_vbak-spart&lt;/P&gt;&lt;P&gt;    TRANSPORTING&lt;/P&gt;&lt;P&gt;      kdgrp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE t_kna1 INTO w_kna1&lt;/P&gt;&lt;P&gt;    WITH KEY kunnr = w_vbak-kunnr&lt;/P&gt;&lt;P&gt;    TRANSPORTING&lt;/P&gt;&lt;P&gt;      name1&lt;/P&gt;&lt;P&gt;      ort01&lt;/P&gt;&lt;P&gt;      adrnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE t_adrc INTO w_adrc&lt;/P&gt;&lt;P&gt;    WITH KEY addrnumber = w_kna1-adrnr&lt;/P&gt;&lt;P&gt;    TRANSPORTING&lt;/P&gt;&lt;P&gt;      country&lt;/P&gt;&lt;P&gt;      sort1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE t_vbup INTO w_vbup&lt;/P&gt;&lt;P&gt;    WITH KEY vbeln = w_vbap-vbeln&lt;/P&gt;&lt;P&gt;             posnr = w_vbap-posnr&lt;/P&gt;&lt;P&gt;    TRANSPORTING&lt;/P&gt;&lt;P&gt;      lfsta&lt;/P&gt;&lt;P&gt;      lfgsa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_result-vbeln   = w_vbak-vbeln  .&lt;/P&gt;&lt;P&gt;  w_result-auart   = w_vbak-auart  .&lt;/P&gt;&lt;P&gt;  w_result-audat   = w_vbak-audat  .&lt;/P&gt;&lt;P&gt;  w_result-kunnr   = w_vbak-kunnr  .&lt;/P&gt;&lt;P&gt;  w_result-bstnk   = w_vbak-bstnk  .&lt;/P&gt;&lt;P&gt;  w_result-bstdk   = w_vbak-bstdk  .&lt;/P&gt;&lt;P&gt;  w_result-vtweg   = w_vbak-vtweg  .&lt;/P&gt;&lt;P&gt;  w_result-vkorg   = w_vbak-vkorg  .&lt;/P&gt;&lt;P&gt;  w_result-knumv   = w_vbak-knumv  .&lt;/P&gt;&lt;P&gt;  w_result-waerk   = w_vbak-waerk  .&lt;/P&gt;&lt;P&gt;  w_result-werks   = w_vbap-werks  .&lt;/P&gt;&lt;P&gt;  w_result-pstyv   = w_vbap-pstyv  .&lt;/P&gt;&lt;P&gt;  w_result-posnr   = w_vbap-posnr  .&lt;/P&gt;&lt;P&gt;  w_result-matnr   = w_vbap-matnr  .&lt;/P&gt;&lt;P&gt;  w_result-kwmeng  = w_vbap-kwmeng .&lt;/P&gt;&lt;P&gt;  w_result-netpr   = w_vbap-netpr  .&lt;/P&gt;&lt;P&gt;  w_result-spart   = w_mara-spart  .&lt;/P&gt;&lt;P&gt;  w_result-extwg   = w_mara-extwg  .&lt;/P&gt;&lt;P&gt;  w_result-ferth   = w_mara-ferth  .&lt;/P&gt;&lt;P&gt;  w_result-mtart   = w_mara-mtart  .&lt;/P&gt;&lt;P&gt;  w_result-maktx   = w_makt-maktx  .&lt;/P&gt;&lt;P&gt;  w_result-lfsta   = w_vbup-lfsta  .&lt;/P&gt;&lt;P&gt;  w_result-lfgsa   = w_vbup-lfgsa  .&lt;/P&gt;&lt;P&gt;  w_result-kdgrp   = w_knvv-kdgrp  .&lt;/P&gt;&lt;P&gt;  w_result-name1   = w_kna1-name1  .&lt;/P&gt;&lt;P&gt;  w_result-ort01   = w_kna1-ort01  .&lt;/P&gt;&lt;P&gt;  w_result-country = w_adrc-country.&lt;/P&gt;&lt;P&gt;  w_result-sort1   = w_adrc-sort1  .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND w_result TO t_result.&lt;/P&gt;&lt;P&gt;  CLEAR  w_result.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Jan 2008 04:11:38 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tunning/m-p/3244920#M774480</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-01T04:11:38Z</dc:date>
    </item>
    <item>
      <title>Re: Performance Tunning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tunning/m-p/3244921#M774481</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi mukesh,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        Main problem in ur code is using inner joins for more than 2 tables.It is advisable to use for all entries for more that 2 tables.Follow the sample code and make nessesry changes in ur code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS: c_act_plan(2)    TYPE c VALUE 'U1'      ,&lt;/P&gt;&lt;P&gt;           c_person(1)      TYPE c VALUE 'P'       ,&lt;/P&gt;&lt;P&gt;           p1_betid(8)      TYPE c VALUE '50005316',&lt;/P&gt;&lt;P&gt;           c_topdown(1)     TYPE c VALUE 'A'       ,&lt;/P&gt;&lt;P&gt;           c_admnby(3)      TYPE c VALUE '032'     ,&lt;/P&gt;&lt;P&gt;           c_bet_type(1)    TYPE c VALUE 'Q'       ,&lt;/P&gt;&lt;P&gt;           c_firmed(1)      TYPE c VALUE '1'       ,&lt;/P&gt;&lt;P&gt;           c_subtyp_mail(4) TYPE c VALUE '0001'    .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_hrp1001,&lt;/P&gt;&lt;P&gt;         objid TYPE hrp1001-objid,&lt;/P&gt;&lt;P&gt;       END OF ty_hrp1001,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;       BEGIN OF ty_pa0001,&lt;/P&gt;&lt;P&gt;         pernr TYPE pa0001-pernr,&lt;/P&gt;&lt;P&gt;         subty TYPE pa0001-subty,&lt;/P&gt;&lt;P&gt;         objps TYPE pa0001-objps,&lt;/P&gt;&lt;P&gt;         sprps TYPE pa0001-sprps,&lt;/P&gt;&lt;P&gt;         endda TYPE pa0001-endda,&lt;/P&gt;&lt;P&gt;         begda TYPE pa0001-begda,&lt;/P&gt;&lt;P&gt;         seqnr TYPE pa0001-seqnr,&lt;/P&gt;&lt;P&gt;         werks TYPE pa0001-werks,&lt;/P&gt;&lt;P&gt;         gsber TYPE pa0001-gsber,&lt;/P&gt;&lt;P&gt;         btrtl TYPE pa0001-btrtl,&lt;/P&gt;&lt;P&gt;       END OF ty_pa0001,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;       BEGIN OF ty_t500p,&lt;/P&gt;&lt;P&gt;         persa TYPE t500p-persa,&lt;/P&gt;&lt;P&gt;         name1 TYPE t500p-name1,&lt;/P&gt;&lt;P&gt;       END OF ty_t500p,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;       BEGIN OF ty_t001p,&lt;/P&gt;&lt;P&gt;         werks TYPE t001p-werks,&lt;/P&gt;&lt;P&gt;         btrtl TYPE t001p-btrtl,&lt;/P&gt;&lt;P&gt;         btext TYPE t001p-btext,&lt;/P&gt;&lt;P&gt;       END OF ty_t001p,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;       BEGIN OF ty_pa0002,&lt;/P&gt;&lt;P&gt;         pernr TYPE pa0002-pernr,&lt;/P&gt;&lt;P&gt;         subty TYPE pa0002-subty,&lt;/P&gt;&lt;P&gt;         objps TYPE pa0002-objps,&lt;/P&gt;&lt;P&gt;         sprps TYPE pa0002-sprps,&lt;/P&gt;&lt;P&gt;         endda TYPE pa0002-endda,&lt;/P&gt;&lt;P&gt;         begda TYPE pa0002-begda,&lt;/P&gt;&lt;P&gt;         seqnr TYPE pa0002-seqnr,&lt;/P&gt;&lt;P&gt;         nachn TYPE pa0002-nachn,&lt;/P&gt;&lt;P&gt;         vorna TYPE pa0002-vorna,&lt;/P&gt;&lt;P&gt;       END OF ty_pa0002,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;       BEGIN OF ty_pa0105,&lt;/P&gt;&lt;P&gt;         pernr      TYPE pa0105-pernr     ,&lt;/P&gt;&lt;P&gt;         subty      TYPE pa0105-subty     ,&lt;/P&gt;&lt;P&gt;         objps      TYPE pa0105-objps     ,&lt;/P&gt;&lt;P&gt;         sprps      TYPE pa0105-sprps     ,&lt;/P&gt;&lt;P&gt;         endda      TYPE pa0105-endda     ,&lt;/P&gt;&lt;P&gt;         begda      TYPE pa0105-begda     ,&lt;/P&gt;&lt;P&gt;         seqnr      TYPE pa0105-seqnr     ,&lt;/P&gt;&lt;P&gt;         usrid_long TYPE pa0105-usrid_long,&lt;/P&gt;&lt;P&gt;       END OF ty_pa0105,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;       BEGIN OF ty_output,&lt;/P&gt;&lt;P&gt;         pernr      TYPE pa0002-pernr     ,&lt;/P&gt;&lt;P&gt;         werks      TYPE pa0001-werks     ,&lt;/P&gt;&lt;P&gt;         gsber      TYPE pa0001-gsber     ,&lt;/P&gt;&lt;P&gt;         btrtl      TYPE pa0001-btrtl     ,&lt;/P&gt;&lt;P&gt;         name1      TYPE t500p-name1      ,&lt;/P&gt;&lt;P&gt;         btext      TYPE t001p-btext      ,&lt;/P&gt;&lt;P&gt;         nachn      TYPE pa0002-nachn     ,&lt;/P&gt;&lt;P&gt;         vorna      TYPE pa0002-vorna     ,&lt;/P&gt;&lt;P&gt;         usrid_long TYPE pa0105-usrid_long,&lt;/P&gt;&lt;P&gt;       END OF ty_output.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;DATA: w_hrp1001     TYPE                 ty_hrp1001,&lt;/P&gt;&lt;P&gt;      t_hrp1001     TYPE        TABLE OF ty_hrp1001,&lt;/P&gt;&lt;P&gt;      t_hrp1001_tmp TYPE        TABLE OF ty_hrp1001,&lt;/P&gt;&lt;P&gt;      w_pa0001      TYPE                 ty_pa0001 ,&lt;/P&gt;&lt;P&gt;      t_pa0001      TYPE SORTED TABLE OF ty_pa0001&lt;/P&gt;&lt;P&gt;        WITH NON-UNIQUE KEY pernr                  ,&lt;/P&gt;&lt;P&gt;      t_pa0001_tmp  TYPE        TABLE OF ty_pa0001 ,&lt;/P&gt;&lt;P&gt;      w_t500p       TYPE                 ty_t500p  ,&lt;/P&gt;&lt;P&gt;      t_t500p       TYPE HASHED TABLE OF ty_t500p&lt;/P&gt;&lt;P&gt;        WITH UNIQUE KEY persa                      ,&lt;/P&gt;&lt;P&gt;      w_t001p       TYPE                 ty_t001p  ,&lt;/P&gt;&lt;P&gt;      t_t001p       TYPE HASHED TABLE OF ty_t001p&lt;/P&gt;&lt;P&gt;        WITH UNIQUE KEY werks btrtl                ,&lt;/P&gt;&lt;P&gt;      w_pa0002      TYPE                 ty_pa0002 ,&lt;/P&gt;&lt;P&gt;      t_pa0002      TYPE SORTED TABLE OF ty_pa0002&lt;/P&gt;&lt;P&gt;        WITH NON-UNIQUE KEY pernr                  ,&lt;/P&gt;&lt;P&gt;      t_pa0002_tmp  TYPE        TABLE OF ty_pa0002 ,&lt;/P&gt;&lt;P&gt;      w_pa0105      TYPE                 ty_pa0105 ,&lt;/P&gt;&lt;P&gt;      t_pa0105      TYPE SORTED TABLE OF ty_pa0105&lt;/P&gt;&lt;P&gt;        WITH NON-UNIQUE KEY pernr                  ,&lt;/P&gt;&lt;P&gt;      w_output      TYPE                 ty_output ,&lt;/P&gt;&lt;P&gt;      t_output      TYPE        TABLE OF ty_output .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;SELECT objid&lt;/P&gt;&lt;P&gt;  FROM hrp1001&lt;/P&gt;&lt;P&gt;  INTO TABLE t_hrp1001&lt;/P&gt;&lt;P&gt;  WHERE otype EQ c_person&lt;/P&gt;&lt;P&gt;  AND   plvar EQ c_act_plan&lt;/P&gt;&lt;P&gt;  AND   rsign EQ c_topdown&lt;/P&gt;&lt;P&gt;  AND   relat EQ c_admnby&lt;/P&gt;&lt;P&gt;  AND   istat EQ c_firmed&lt;/P&gt;&lt;P&gt;  AND   begda LE sy-datum&lt;/P&gt;&lt;P&gt;  AND   endda GT sy-datum&lt;/P&gt;&lt;P&gt;  AND   sclas EQ c_bet_type&lt;/P&gt;&lt;P&gt;  AND   sobid EQ p1_betid.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;  SORT t_hrp1001 BY objid.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;IF NOT t_hrp1001[] IS INITIAL.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  t_hrp1001_tmp[] = t_hrp1001[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DELETE ADJACENT DUPLICATES FROM t_hrp1001_tmp&lt;/P&gt;&lt;P&gt;    COMPARING objid.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SELECT pernr&lt;/P&gt;&lt;P&gt;         subty&lt;/P&gt;&lt;P&gt;         objps&lt;/P&gt;&lt;P&gt;         sprps&lt;/P&gt;&lt;P&gt;         endda&lt;/P&gt;&lt;P&gt;         begda&lt;/P&gt;&lt;P&gt;         seqnr&lt;/P&gt;&lt;P&gt;         werks&lt;/P&gt;&lt;P&gt;         gsber&lt;/P&gt;&lt;P&gt;         btrtl&lt;/P&gt;&lt;P&gt;    FROM pa0001&lt;/P&gt;&lt;P&gt;    INTO TABLE t_pa0001&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN t_hrp1001_tmp&lt;/P&gt;&lt;P&gt;    WHERE pernr EQ t_hrp1001_tmp-objid&lt;/P&gt;&lt;P&gt;    AND   endda GT sy-datum&lt;/P&gt;&lt;P&gt;    AND   begda LE sy-datum.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SELECT pernr&lt;/P&gt;&lt;P&gt;         subty&lt;/P&gt;&lt;P&gt;         objps&lt;/P&gt;&lt;P&gt;         sprps&lt;/P&gt;&lt;P&gt;         endda&lt;/P&gt;&lt;P&gt;         begda&lt;/P&gt;&lt;P&gt;         seqnr&lt;/P&gt;&lt;P&gt;         nachn&lt;/P&gt;&lt;P&gt;         vorna&lt;/P&gt;&lt;P&gt;    FROM pa0002&lt;/P&gt;&lt;P&gt;    INTO TABLE t_pa0002&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN t_hrp1001_tmp&lt;/P&gt;&lt;P&gt;    WHERE pernr EQ t_hrp1001_tmp-objid&lt;/P&gt;&lt;P&gt;    AND   endda GT sy-datum&lt;/P&gt;&lt;P&gt;    AND   begda LE sy-datum.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;IF NOT t_pa0001[] IS INITIAL.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  t_pa0001_tmp[] = t_pa0001[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SORT t_pa0001_tmp BY werks btrtl.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DELETE ADJACENT DUPLICATES FROM t_pa0001_tmp COMPARING werks btrtl.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SELECT werks&lt;/P&gt;&lt;P&gt;         btrtl&lt;/P&gt;&lt;P&gt;         btext&lt;/P&gt;&lt;P&gt;    FROM t001p&lt;/P&gt;&lt;P&gt;    INTO TABLE t_t001p&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN t_pa0001_tmp&lt;/P&gt;&lt;P&gt;    WHERE werks EQ t_pa0001_tmp-werks&lt;/P&gt;&lt;P&gt;    AND   btrtl EQ t_pa0001_tmp-btrtl.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DELETE ADJACENT DUPLICATES FROM t_pa0001_tmp COMPARING werks.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SELECT persa&lt;/P&gt;&lt;P&gt;         name1&lt;/P&gt;&lt;P&gt;    FROM t500p&lt;/P&gt;&lt;P&gt;    INTO TABLE t_t500p&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN t_pa0001_tmp&lt;/P&gt;&lt;P&gt;    WHERE persa EQ t_pa0001_tmp-werks.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;IF NOT t_pa0002[] IS INITIAL.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  t_pa0002_tmp[] = t_pa0002[].&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DELETE ADJACENT DUPLICATES FROM t_pa0002_tmp COMPARING pernr.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SELECT pernr&lt;/P&gt;&lt;P&gt;         subty&lt;/P&gt;&lt;P&gt;         objps&lt;/P&gt;&lt;P&gt;         sprps&lt;/P&gt;&lt;P&gt;         endda&lt;/P&gt;&lt;P&gt;         begda&lt;/P&gt;&lt;P&gt;         seqnr&lt;/P&gt;&lt;P&gt;         usrid_long&lt;/P&gt;&lt;P&gt;    FROM pa0105&lt;/P&gt;&lt;P&gt;    INTO TABLE t_pa0105&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN t_pa0002_tmp&lt;/P&gt;&lt;P&gt;    WHERE pernr EQ t_pa0002_tmp-pernr&lt;/P&gt;&lt;P&gt;    AND   subty EQ c_subtyp_mail&lt;/P&gt;&lt;P&gt;    AND   endda GT sy-datum&lt;/P&gt;&lt;P&gt;    AND   begda LE sy-datum&lt;/P&gt;&lt;P&gt;    AND   usrty EQ c_subtyp_mail.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;REFRESH t_output.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;LOOP AT t_hrp1001 INTO w_hrp1001.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT t_pa0001 INTO w_pa0001&lt;/P&gt;&lt;P&gt;    WHERE pernr EQ w_hrp1001-objid.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    READ TABLE t_t500p INTO w_t500p WITH KEY persa = w_pa0001-werks&lt;/P&gt;&lt;P&gt;                                             TRANSPORTING&lt;/P&gt;&lt;P&gt;                                               name1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    READ TABLE t_t001p INTO w_t001p WITH KEY werks = w_pa0001-werks&lt;/P&gt;&lt;P&gt;                                             btrtl = w_pa0001-btrtl&lt;/P&gt;&lt;P&gt;                                             TRANSPORTING&lt;/P&gt;&lt;P&gt;                                               btext.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    LOOP AT t_pa0002 INTO w_pa0002&lt;/P&gt;&lt;P&gt;      WHERE pernr EQ w_hrp1001-objid.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      LOOP AT t_pa0105 INTO w_pa0105&lt;/P&gt;&lt;P&gt;        WHERE pernr EQ w_pa0002-pernr.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;        w_output-pernr      = w_pa0002-pernr     .&lt;/P&gt;&lt;P&gt;        w_output-werks      = w_pa0001-werks     .&lt;/P&gt;&lt;P&gt;        w_output-gsber      = w_pa0001-gsber     .&lt;/P&gt;&lt;P&gt;        w_output-btrtl     = w_pa0001-btrtl      .&lt;/P&gt;&lt;P&gt;        w_output-name1      = w_t500p-name1      .&lt;/P&gt;&lt;P&gt;        w_output-btext      = w_t001p-btext      .&lt;/P&gt;&lt;P&gt;        w_output-nachn      = w_pa0002-nachn     .&lt;/P&gt;&lt;P&gt;        w_output-vorna      = w_pa0002-vorna     .&lt;/P&gt;&lt;P&gt;        w_output-usrid_long = w_pa0105-usrid_long.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;        APPEND w_output TO t_output.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;        CLEAR w_output.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward if it is usful,&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Srikanth.A&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Jan 2008 05:17:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tunning/m-p/3244921#M774481</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-01T05:17:27Z</dc:date>
    </item>
    <item>
      <title>Re: Performance Tunning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tunning/m-p/3244922#M774482</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mark, &lt;/P&gt;&lt;P&gt;   That was good explanation,, i really say that you have a lot of patience, u have rewritten the whole the code. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the reply. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;awarded the maximum points. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards &lt;/P&gt;&lt;P&gt;Mukesh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Jan 2008 05:35:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tunning/m-p/3244922#M774482</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-01T05:35:26Z</dc:date>
    </item>
  </channel>
</rss>

