从Oracle的SGA的构成来看,它是推崇使用 参数绑定的。使用参数绑定可以有效的使用Share Pool,对已经缓存的SQL不用再硬解析,能明显的提高性能。 具体实践如下:SQL>create table test (a number(10)); 再创建一个存储过程:create or replace PRocedure p_test is i number(10); begin i := 0; while i <= 100000 loop execute immediate ' insert into test values (' to_char(i) ')'; i := i + 1; end loop; commit;end p_test;先测试没有使用参数绑定的:运行 p_test 后,用时91.111秒再创建一个使用参数绑定的:create or replace procedure p_test is i number(10); begin i := 0; while i <= 100000 loop execute immediate ' insert into test values (:a)' using i; i := i + 1; end loop; commit;end p_test;运行 p_test 后,用时55.099秒.从上面的运行时间可以看出,两者性相差 39.525%,可见,用不用参数绑定在性能上相差是比较大的。 Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1416644