ITPub博客

首页 > 应用开发 > IT综合 > 关于原来对parse的一些误解

关于原来对parse的一些误解

原创 IT综合 作者:empo007 时间:2007-03-23 14:39:42 0 删除 编辑

以前总认为只要执行SQL,必然会PARSE,事实上这是不对的。 实际上我们可以大量减少SOFT PARSE。

[@more@]

1、如果我们设置参数session_cached_cursors,ORACLE会高速缓存游标,这样对每个会话的某个游标只打开一次并执行很多次,也就是PARSE一次执行很多次。

2、在PL/SQL中,会自动高速缓存语句。当你关闭游标时,ORACLE并不马上关闭,而是保持游标打开,希望被再次使用。如果打开的游标数超出了参数文件中的open_cursors值,ORACLE才会抛弃一条高速缓存的游标。PL/SQL只能对静态SQL做到这点。

3、在PL/SQL中:

a.只要有可能,就应该使用游标(隐式和显式)的形式使用SQL

b.如果认为自己要反复执行相同的动态语句很多次,应该优先使用DBMS_SQL而不是EXECUTE IMMEDIATE

c.使用数组并执行具有许多输入的单条动态语句(forall)而不是使用DBMS_SQL

4、对于触发器等,SQL语句只在调用期间高速缓存,分离调用则会再次软解析,为避免这一点,可以把SQL放在PACKAGE中,并在触发器中调用PACKAGE中包含对应SQL的代码。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/85922/viewspace-906571/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    126
  • 访问量
    1098960