Re: COEPの抽出
ishikawa
投稿数: 10
%_HINTS ORACLE 'INDEX("COEP" "COEP~1")'.
こんな構文が可能なんですね。
このヒント文は(テーブルCOEPのインデックス"COEP~1"を使うと効率が良い)
という事になると思います。
COEP~1は一次インデックスというか、主キーのインデックスですが
このキーとWHERE条件が一致していないので、このインデックスをつかえておらず
FULL SCANされていると推測しています。
手っ取り早い解消方法といえば、現在の抽出条件に利用している項目の単位で二次インデックスを
作成し、ヒント文でその追加したインデックス(COEP~2)を指定すれば解消すると思います。
(もちろんその後DBの統計情報更新も。)
効果はデータの分布状態(インデックスの効率)にもよりますが十倍から数十倍の効果がでる場合もあります。
また、効果があるか定かではないですがインデックスが貼られた項目順に
WHERE条件も並べておいた方がお作法的には良いような気はします。
※ただし、インデックスが増える分COEPの更新する他の処理に影響が出ますので
コアなテーブルへの二次インデックス作成はBASIS担当の方と相談の上行った方が良いと思います。
それと初歩的ですが実装していると意外と忘れがちな件です。
"FOR ALL ENTRIES"は指定した内部テーブル(ITAB_WBS)が0件の場合
WHERE条件そのものが無効となる罠がありますが、これに該当していないでしょうか?
パラメータで指定されている会計年度・原価要素等の抽出条件も無効となりますので
この場合ですと全件(3,600万件)を抽出しに行きます。
<ご参考>
http://abap.sblo.jp/article/13768651.html
テーブルのキー情報だけで一度内部テーブルへ抽出して
対象外データを内部テーブルからDeleteする方法の検討もありかと思います。
DB負荷をアプリ側に持ってきただけなので
アルゴリズムとしてはイマイチですが、結果としてパフォーマンスが向上する場合もあります。
いずれにしてもSAP全般的に"年度"を跨る抽出は遅くなると思います。
パフォーマンスについては、ある程度はやむなしな気はします。
こんな構文が可能なんですね。
このヒント文は(テーブルCOEPのインデックス"COEP~1"を使うと効率が良い)
という事になると思います。
COEP~1は一次インデックスというか、主キーのインデックスですが
このキーとWHERE条件が一致していないので、このインデックスをつかえておらず
FULL SCANされていると推測しています。
手っ取り早い解消方法といえば、現在の抽出条件に利用している項目の単位で二次インデックスを
作成し、ヒント文でその追加したインデックス(COEP~2)を指定すれば解消すると思います。
(もちろんその後DBの統計情報更新も。)
効果はデータの分布状態(インデックスの効率)にもよりますが十倍から数十倍の効果がでる場合もあります。
また、効果があるか定かではないですがインデックスが貼られた項目順に
WHERE条件も並べておいた方がお作法的には良いような気はします。
※ただし、インデックスが増える分COEPの更新する他の処理に影響が出ますので
コアなテーブルへの二次インデックス作成はBASIS担当の方と相談の上行った方が良いと思います。
それと初歩的ですが実装していると意外と忘れがちな件です。
"FOR ALL ENTRIES"は指定した内部テーブル(ITAB_WBS)が0件の場合
WHERE条件そのものが無効となる罠がありますが、これに該当していないでしょうか?
パラメータで指定されている会計年度・原価要素等の抽出条件も無効となりますので
この場合ですと全件(3,600万件)を抽出しに行きます。
<ご参考>
http://abap.sblo.jp/article/13768651.html
テーブルのキー情報だけで一度内部テーブルへ抽出して
対象外データを内部テーブルからDeleteする方法の検討もありかと思います。
DB負荷をアプリ側に持ってきただけなので
アルゴリズムとしてはイマイチですが、結果としてパフォーマンスが向上する場合もあります。
いずれにしてもSAP全般的に"年度"を跨る抽出は遅くなると思います。
パフォーマンスについては、ある程度はやむなしな気はします。
投票数:167
平均点:4.37
投稿ツリー
-
COEPの抽出
(ゲスト, 2013-7-18 9:14)
- Re: COEPの抽出 (ishikawa, 2013-7-18 17:47)
- Re: COEPの抽出 (ゲスト, 2013-7-18 21:09)
- Re: COEPの抽出 (abapやってます, 2013-7-24 18:39)
- Re: COEPの抽出 (ゲスト, 2013-7-25 8:59)