优化Oracle查询

时间:2018-11-23 12:58:12

标签: sql oracle plsql

我想调整查询,使其在下面循环运行,并currentValue$onChanges的值被动态替换。

$watch

所以在循环中会有多个具有不同值的查询

$doCheck

一种方法是编写存储过程,并在数据库级别对所有价格执行所有循环。

还有其他方法可以进行调整,以使单个查询具有多个动态值

1 个答案:

答案 0 :(得分:0)

SQL是面向集合的语言,它在没有循环的情况下效果最佳,因为它为优化器提供了实现最终结果的最佳方法。

如果当前正在做

for i in (select * 
            from product 
           where name = 'a' 
             and minprice >= 0 
             and maxprice <=10 )
loop  
    --inserting/updating/deleting  
    insert into another_table values(1.product_id,i.name);
end loop;

将其更改为

insert 
   into another_table
select producr_id,name 
  from product 
 where name = 'a' 
   and minprice >= 0 
   and maxprice <=60;