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