是否有比以下更有效的方式:
select * from transactions partition( partition1 )
union all
select * from transactions partition( partition2 )
union all
select * from transactions partition( partition3 );
答案 0 :(得分:15)
在查询中使用PARTITION(partitionN)语法应该非常罕见。
您通常只想指定分区键的值,并允许Oracle执行分区消除。如果您的表每天根据TRANSACTION_DATE进行分区,例如
SELECT *
FROM transactions
WHERE transaction_date IN (date '2010-11-22',
date '2010-11-23',
date '2010-11-24')
将从今天的分区,昨天的分区和分区的前一天选择所有数据。
答案 1 :(得分:-1)
你能提供额外的背景吗?你的谓词是什么?是什么让你认为你需要明确告诉优化器反对多个分区。例如,您可能使用了错误的分区键。