eccubeの集計が遅すぎる「SC_Batch_Daily.phpのlfBatOrderAge」が痛い。PostgreSQL編

前から思っていたんだけど、eccubeの集計がやたらと遅い。ググってみるとバッチ処理で何とかしましょうってのが多い感じ。でも何とかしたい。

手っ取り早いのは、SC_Batch_Daily.phpの$this->lfBatOrderAge(・・・)をコメントにしてしまう。これだけでかなり高速に。でも、せっかくなのでこのメソッドを有効に考えるとなると、下記のフィールドにインデックスを作成してやるしか手はない。(スクリプトに手を加えないとすればの話)

=# create index dtb_order_create_date_idx on dtb_order(create_date);
=# create index dtb_order_customer_id_idx on dtb_order(customer_id);
=# create index dtb_customer_customer_id_idx on dtb_customer(customer_id);
=# create index dtb_order_order_birth_idx on dtb_order(order_birth);
=# vacuum analyze;

lfBatOrderAgeをコメントにした程の効果は無いものの、一応タイムアウトはしないようになった。
これ以上いじってもバージョンが変わればまた追わなくてはならなくなるので、簡単な方法で改善するしか無いと思う今日この頃・・・