質問

以下よりも効率的な方法はありますか

select * from transactions partition( partition1 ) 
union all 
select * from transactions partition( partition2 ) 
union all 
select * from transactions partition( partition3 ); 
役に立ちましたか?

解決

クエリでパーティション(partitionn)構文を使用することは非常にまれです。

通常、パーティションキーの値を指定し、Oracleがパーティションの排除を実行できるようにするだけです。たとえば、transaction_dateに基づいてテーブルが毎日分割されている場合

SELECT *
  FROM transactions
 WHERE transaction_date IN (date '2010-11-22', 
                            date '2010-11-23', 
                            date '2010-11-24')

今日のパーティション、昨日のパーティション、および前日のパーティションからすべてのデータを選択します。

他のヒント

追加のコンテキストを提供できますか?あなたの述語は何ですか?複数のパーティションに反対するようにOptimizerに明示的に指示する必要があると思う理由。たとえば、使用されているパーティションキーが間違っている場合があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top