私はこのクエリを可能な限り最適化しようとしています。私のテスト・テーブルでは、これは私が望むものとまったく同じですが、ライブ・テーブルでは、実行に非常に時間がかかります。Oracle/SQL - このユニオン/グループ/カウントクエリを最適化するための助けが必要
select THING_,
count(case STATUS_ when '_Good_' then 1 end) as GOOD,
count(case STATUS_ when '_Bad_' then 1 end) as BAD,
count(case STATUS_ when '_Bad_' then 1 end)/count(case STATUS_ when '_Good_' then 1 end) * 100 as FAIL_PERCENT
from
(
select THING_,
STATUS_,
from <good table>
where TIMESTAMP_ > (sysdate - 1) and
STATUS_ = '_Good_' and
upper(THING_) like '%TEST%'
UNION ALL
select THING_,
STATUS_,
from <bad table>
where TIMESTAMP_ > (sysdate - 1) and
STATUS_ = '_Bad_' and
THING_THING_ like '%TEST%'
) u
group by THING_
は、私はそれは、自己は私が何をしたいのか説明にする必要がありますクエリを見て、と思いますが、追加情報が必要とされていない場合、または場合は、私が知っていると私はいくつかのサンプル表を掲載しますしてください。
ありがとうございます!
「良いテーブル」と「悪いテーブル」は実際のテーブルであり、eではありません。 g。ビュー、ネストされたクエリなど? – Quassnoi
実テーブルです。 – dscl
テスト環境と本番環境の実行計画を生成します –