【发布时间】:2009-02-26 14:02:32
【问题描述】:
在努力提高决策中心的性能时,我们发现的瓶颈之一是数据库。
所以我想知道,oracle 是否为它的视图编译了一个执行计划?
假设我有一个已定义的查询在请求期间被使用10000 次。
查询看起来像:
select A, B, C
from aTbl, bTbl left join cTbl on bTbl.cTblID = cTbl.objectkey
where aTbl.objectkey = bTbl.parentkey
在代码中我想用附加的过滤参数来获取上面查询的结果,例如:WHERE aTbl.flag1 = <<NUMBER>>
现在我有两个选择:
- 使用上述
SQL创建一个准备好的语句,然后重用该对象。 - 将上面的
select (aTbl, bTbl, cTbl)放入VIEW,然后在这个视图上创建一个prepared statement,从而受益于b Oracle 预编译的执行计划。
你有什么建议?
【问题讨论】:
标签: sql performance oracle