SQLは複数のパーティションでどのように選択しますか?
-
28-09-2019 - |
質問
以下よりも効率的な方法はありますか
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に明示的に指示する必要があると思う理由。たとえば、使用されているパーティションキーが間違っている場合があります。
所属していません StackOverflow