【发布时间】:2017-02-23 17:46:47
【问题描述】:
我正在编写一个 pl/sql 代码。请帮助计算以下两种方法的时间。
方法一:
if count(x)>1
then
select sum(price) into vprice from table1 where x between var1 and var2;
else
select price into vprice from table1 where x=var1;
end;
方法二:
select sum(price) from table1 where x between var1 and var2;
我们正在根据其他条件确定代码上方某处的 var1 和 var2 的值。在大约五分之四的情况下,var1 和 var2 的值将是相同的。
P.S.:请忽略任何语法或逻辑错误。我试图了解我的程序中发生了什么,以了解提高效率的更好方法。
【问题讨论】:
-
你不能测试一下吗?
-
Method1 似乎根据某个值执行两个查询之一。
if count(x)>1不是有效的 PL/SQL,我知道你说过要忽略它,但我不知道它想做什么。 Method2 似乎类似于 Method1 中的第一个查询。这两种“方法”与“计算时间”有什么关系,无论是什么,都不清楚。 -
我假设您问的是使用
=而不是between(如果有)所节省的成本是否被额外的 PL/SQL 逻辑所抵消,以决定遵循哪个分支?