2017-11-21 25 views
-2

クエリのパフォーマンスは非常に低く、実行には非常に時間がかかり、実行には約11秒かかりますが、クエリの実行には約60msかかります。Oracle 11g unpivot非常に低速 - 低パフォーマンス

クエリは複雑で、いくつかの結合がありますが、数行しか返しません。

Unpivotは〜7グループバイ列とアンピボット約40列で動作します。

説明クエリープランには詳細は示されていませんが、アンピボットのコストは非常に高いです。

+0

の要因により、クエリ時間を削減

WITH base as (select my_data, ...) select * from base UNPIVOT (...) 

を試してみてください、あなたのテーブルのために[MCVE] DDL文を含めてください、サンプル・データのDML文、問合せ、およびExplain計画が含まれます。そうでないと、他の人がこの質問に対する回答を提供できなくなってしまっています。「明確な問題文がない質問は他の読者にとって役に立たない」 – MT0

+0

私は、そうでなければ不安定な問題の可能な解決法を提供しています。私はそれを解決しようと何時間も過ごした。この質問はすでにGoogleで非常に索引付けされており、特定の(タイトル)問題に対する解決策を人々に提供します。そして、MCVEには数時間かかるかもしれません。オラクルのクエリー・アナライザは、収集された統計情報を含む大規模な本番データベースとは多少異なることに取り組んでいるため、実際に問題を示すことは期待できませんでした。私がそれを価値あるものにするのに役立つ人が1人いると私は信じているので、あなたが質問を終わらせるか、私が代理人を失うかどうかは気にしない。開発者向け! – Dariusz

答えて

0

baseクエリにはWITH句を使用してください。代わりに

SELECT * from (SELECT my_data, ...) UNPIVOT (...) 

は、私の場合、それは10

+0

この質問に自己回答する場合は、[MCVE]を入力してアサーションをバックアップしてください。 – MT0

関連する問題