EDIT2:それがより明確になるようグループ
私はかなり長い400行10列のサブクエリテーブルが生成する句、と持っている全体の質問を言い換え非常に大きなテーブルから1秒未満で。
しかし私はそのサブクエリと問題が発生したグループを作成したいと思います。私がそのグループを行い、さらにwith節でそれを使用すると、クエリは15分間実行されます私はそれを終了した。
私だけでグループを使用し、そこにスクリプトを停止した場合、それは、このスクリプトを使って、第二の下で実行されます:
portfolio
しかし句と
の前の部分である
select ROK,d.typ,LIM_DGR_KOEF, LIM_HODNOTA, LIMIT_OD, LIMIT_DO,lek_uvazky,
sum(d.dok_sk_vyp) suma_fakt,
sum(d.dok_sk_vyp-d.dok_sk_uzn) neuzn_vyk,
sum(d.dok_sk_uzn) suma_uzn,
sum(d.dok_sk_uct) suma_uct,
count(*) as pocet_vyk
from portfolio d
group by ROK,d.typ,LIM_DGR_KOEF, LIM_HODNOTA, LIMIT_OD, LIMIT_DO,lek_uvazky
たとえば、サブクエリとして再度使用すると、次のようになります。
pf as(
select ROK,d.typ,LIM_DGR_KOEF, LIM_HODNOTA, LIMIT_OD, LIMIT_DO,lek_uvazky,
sum(d.dok_sk_vyp) suma_fakt,
sum(d.dok_sk_vyp-d.dok_sk_uzn) neuzn_vyk,
sum(d.dok_sk_uzn) suma_uzn,
sum(d.dok_sk_uct) suma_uct,
count(*) as pocet_vyk
from portfolio d
group by ROK,d.typ,LIM_DGR_KOEF, LIM_HODNOTA, LIMIT_OD, LIMIT_DO,lek_uvazky
)select * from pf
次に、説明プランが変更され、非常に重いです。ここで
は計画を説明しています http://imgur.com/a/nJpT8
は速いの例のように同じパスを選択するオプティマイザを指示する方法はありますか?彼らはまだ存在しない場合は、適切なインデックスを追加)
1:テーブル構造と実行計画を見ずに
少なくとも、両方のクエリプランを投稿する必要があります。オプティマイザが何をしているのかを推測し、推測していることを推測して推測しているのかもしれません。 –
元のクエリの実行計画を追加してください。 –
@JustinCave私はアルバムをimgurする計画を追加しました –