我有一个存储过程,接受6个参数。当部署在实际应用中,我在通过该过程的调用日志(存储过程开始和结束时会插入日志)观察,该存储过程的平均执行时间需要8秒。但是我将该存储过程单独拿出来执行,同样的参数执行了3次后,大约只需0.6秒。可见对于同样参数oracle会优化执行性能,无需多次解析。虽然我的存储过程逻辑基本相同,但每次接受参数不同,一天大约会被执行上千次,但从结果来看这上千次执行每次都好像都是第一次执行,效率很低,完全没有利用到之前的执行结果。不知道有没有办法可以优化?
解决方案 »
- 监听和监听的配置文件是如何关联的?
- 怎么取间隔记录?
- 请教sql多表多组队条件的查询
- 一个ORACLE交流群,希望大家参加!!!
- Oracle里没有top的?那么能什么来代替?
- 不用alter table add constraint能给约束起自己的名字吗?
- 在程序中用ODBC连接Oracle数据库,在客户端(程序运行在客户端,Oracle服务器在另外一台机器)需不需要安装Oracle client软件。
- 请问由系统管理员设置的触发器被用户程序激发后其执行时的权限是用户权限还是系统权限?
- 初学oracle,请教这是什么错误,谢谢了
- 数据类型不一致导致的ora03113
- sql子查询问题,求大神解答
- 索引创建时间漫长,请求助
存储过程中默认都是形参吧。例如in_parameter是输入参数,那么我select 1 into temp from table where parameter=in_parameter这种写法应该没有问题吧?
select 2 into temp2 from table2 where para2=in_parameter2 and 其他条件
select 3 into temp3 from table3 where para3=in_parameter3 and 其他条件
select 4 into temp4 from table4 where para4=in_parameter4 and 其他条件
select 5 into temp5 from table5 where para5=in_parameter5 and 其他条件
select 6 into temp6 from table6 where para6=in_parameter6 and 其他条件
像这样一个存储过程用不同参数组合进行多次查询,是软解析还是硬解析呢?效率能提升嘛?
来处理 using :paramer_name