如何并行简单的SELECT查询?

时间:2014-06-19 02:50:58

标签: sql oracle parallel-processing

说我有经典之作:

select * from employees where dob < to_date('10/10/1985', 'DD/MM/YYYY');

表很大,所以我想并行化这个查询。

按照我在这里看到的内容:

http://docs.oracle.com/cd/B10500_01/server.920/a96524/c20paral.htm#13255

基本上我们想要做的是将表仲裁成n个部分,并在不同线程上的每个块上运行我们的select语句,然后在最后将它们连接在一起。

  1. 这里的并行化是否合适?
  2. 我该如何撰写查询?

2 个答案:

答案 0 :(得分:1)

试试这个:

select /*+ PARALLEL(4) */ * from employees 
where dob < to_date('10/10/1985', 'DD/MM/YYYY');

Oracle Hint了解详情。

另请参阅此answer以了解PARALLEL未在SQL语句中应用的原因。

答案 1 :(得分:-1)

/*+parallel(8)*/

的搜索时间从16秒减少到3秒。因此,我可以肯定地说它可行:)