HANAで2つのテーブルを結合しています。統計を取得するために、アイテムテーブルに3回LEFT結合して、処理されたエラー数、およびエラー数が表示されます。同じテーブルに集約された複数の左結合により、SAP HANAのパフォーマンスが大幅に低下します
これはデベロッパーシステムで、itemsテーブルには1500アイテムしかありません。しかし、以下のクエリは17秒間実行されます。
3つの集約条件のいずれかを削除すると(ただし、対応するJOINはそのままの状態)、クエリはほぼ即時に実行されます。
また、特定のJOINで使用されているフィールドにインデックスを追加しようとしましたが、違いはありません。
select rk.guid, rk.run_id, rk.status, rk.created_at, rk.created_by,
count(distinct rp.guid),
count(distinct rp2.guid),
count(distinct rp3.guid)
from zbsbpi_rk as rk
left join zbsbpi_rp as rp
on rp.header = rk.guid
left join zbsbpi_rp as rp2
on rp2.header = rk.guid
and rp2.processed = 'X'
left join zbsbpi_rp as rp3
on rp3.header = rk.guid
and rp3.result_status = 'E'
where rk.run_id = '0000000010'
group by rk.guid, run_id, status, created_at, created_by