-3
(....)
DATA: BEGIN OF g00 OCCURS 100,
            werks LIKE lqua-werks,
            lgort LIKE lqua-lgort,
            matnr LIKE lqua-matnr,
            charg LIKE lqua-charg,
            maktx LIKE makt-maktx,
            verme LIKE lqua-verme,
            meins LIKE lqua-meins,
            dispo LIKE marc-dispo,
      END OF g00.
(.....)
 CLEAR : g00.
  REFRESH : g00.
  SELECT lqua~bestq lqua~charg lqua~lgort lqua~lgnum lqua~lgpla
lqua~lgtyp lqua~matnr lqua~meins lqua~verme lqua~werks makt~maktx
         makt~matnr makt~spras mara~bismt mara~matnr marc~dispo
         marc~matnr marc~werks
  INTO (lqua-bestq , lqua-charg , lqua-lgort , lqua-lgnum , lqua-lgpla ,
 lqua-lgtyp , lqua-matnr , lqua-meins , lqua-verme , lqua-werks ,
makt-maktx , makt-matnr , makt-spras , mara-bismt , mara-matnr ,
marc-dispo , marc-matnr , marc-werks )
  FROM ( lqua
         INNER JOIN makt
         ON makt~matnr = lqua~matnr
         INNER JOIN mara
         ON mara~matnr = makt~matnr
         INNER JOIN marc
         ON marc~werks = lqua~werks
         AND marc~matnr = lqua~matnr )
         WHERE lqua~bestq IN sbestq
           AND lqua~lgnum IN slgnum
           AND lqua~lgpla IN slgpla
           AND lqua~lgtyp IN slgtyp
           AND lqua~matnr IN smatnr
           AND lqua~werks IN swerks
           AND makt~maktx IN smaktx
           AND makt~spras IN sspras
*           AND MARA~BISMT IN Sbismt
           AND marc~dispo IN sdispo.
    MOVE-CORRESPONDING mara TO g00.
    MOVE-CORRESPONDING makt TO g00.
    MOVE-CORRESPONDING marc TO g00.
    MOVE-CORRESPONDING lqua TO g00.
    COLLECT g00.
  ENDSELECT.

上記のコードのパフォーマンスを改善するのに役立つ人はいますか?

4

2 に答える 2

2

結合 (LQUA) の開始テーブルがキー フィールドまたはインデックス フィールドを選択していないため、それらを使用できる場合よりも常に実行が遅くなります。

すべてをキー フィールドに結合する方法はないようですが、最初に MARA (MATNR はキー フィールド) から取得するようにクエリを微調整すると、うまくいく可能性があります。

FROM ( mara
         INNER JOIN makt
         ON makt~matnr = mara~matnr
         INNER JOIN lqua
         ON lqua~matnr = mara~matnr
         INNER JOIN marc
         ON marc~werks = mara~werks
         AND marc~matnr = mara~matnr )...
于 2013-11-13T13:24:18.423 に答える