我想查询一个包含 100 万条记录的表,其中包含名为“FooBar”的客户,这些客户的记录日期为 2016 年 7 月 24 日。该表包含 10 天的数据。
select *
from table
where customer = 'FooBar'
and insert_date between to_date('2016-07-24 00:00:00', 'YYYY-MM-DD HH24:MI:SS') and to_date('2016-07-24 23:59:59', 'YYYY-MM-DD HH24:MI:SS');
上述查询的问题是运行需要一段时间。我希望它运行得更快。
该表分为 24 小时天。我可以将查询集中在表分区上吗?这会让查询运行得更快吗?
select *
from partition-7-24-2016
where customer = 'FooBar';
最佳答案
正确的语法是从[表]分区([分区])中选择[列]
。因此,在这个用例中,您将拥有如下内容:
SELECT *
FROM mytable PARTITION (partition_7_24_2016)
WHERE customer = 'FooBar';
关于sql - 在Oracle SQL中,我可以查询表的一个分区而不是整个表以使其运行得更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38578004/