【发布时间】:2014-04-24 14:15:29
【问题描述】:
我有一些执行 oracle 调用的代码。我想知道我尝试这样做的方式是否可以做得更好,或者 oracle 代码是否可以更有效。
我主要关心的是对UPPER('%Variable%') 进行比较。鞋面内的通配符似乎有潜在危险的缓慢。
结果可以返回超过 50k 个结果(预计未来会大幅增长)。
1=1 的目的只是为了使其余代码更简单,并认为它不会对 sql 造成太大伤害。
<c:set var="sqltext">
SELECT var1, var2, var3 from var_table
WHERE 1=1
<c:if test="${!empty param.var1}"> AND UPPER(var1) LIKE UPPER('%${param.var1}%')</c:if>
<c:if test="${!empty param.var2}"> AND UPPER(var2) LIKE UPPER('%${param.var2}%')</c:if>
<c:if test="${!empty param.var3}"> AND var3 = '${param.var3}'</c:if>
</c:set>
<sql:query var="data" dataSource="mydatasource" sql="${sqltext}"/>
任何帮助将不胜感激。谢谢
【问题讨论】:
标签: oracle optimization jstl query-optimization