day18——sql优化——绑定变量
生活随笔
收集整理的這篇文章主要介紹了
day18——sql优化——绑定变量
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SQL> create table t(id int);
SQL> set timing onSQL> variable x number; (聲明x變量)SQL> exec :x :=8
SQL> insert into t values(:x);SQL> select * from t;SQL> commit;
SQL> ?declare2 ? ? ? ? ?i number;3 ? ? ? ? ?sqlstr varchar(2000);4 ? ? ? ? ?begin5 ? ? ? ? ?for i in 1..1000 loop6 ? ? ? ? ?sqlstr :='insert into t values('||to_char(i)||')';7 ? ? ? ? ?execute immediate sqlstr;8 ? ? ? ? ?end loop;9 ? ? ? ? ?end;10 ? ? ? ? ?/
PL/SQL procedure successfully completed.
Elapsed: 00:00:01.05(這段代碼同樣是執行了1000條insert語句,但是每一條語句都是不同的,因此ORACLE會把每條語句硬解析一次,其效率就比前面那段就低得多了。)
SQL> declare2 ? ? ? ? ?i number;3 ? ? ? ? ?sqlstr varchar(2000);4 ? ? ? ? ?begin5 ? ? ? ? ?for i in 1..1000 loop6 ? ? ? ? ?sqlstr :='insert into t values(:i)';7 ? ? ? ? ?execute immediate sqlstr using i;8 ? ? ? ? ?end loop;9 ? ? ? ? ?end;10 ? ? ? ? ?/
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.19(使用了綁定變量執行1000條時 只有第一條硬解析)
來自為知筆記(Wiz)
SQL> set timing onSQL> variable x number; (聲明x變量)SQL> exec :x :=8
SQL> insert into t values(:x);SQL> select * from t;SQL> commit;
SQL> ?declare2 ? ? ? ? ?i number;3 ? ? ? ? ?sqlstr varchar(2000);4 ? ? ? ? ?begin5 ? ? ? ? ?for i in 1..1000 loop6 ? ? ? ? ?sqlstr :='insert into t values('||to_char(i)||')';7 ? ? ? ? ?execute immediate sqlstr;8 ? ? ? ? ?end loop;9 ? ? ? ? ?end;10 ? ? ? ? ?/
PL/SQL procedure successfully completed.
Elapsed: 00:00:01.05(這段代碼同樣是執行了1000條insert語句,但是每一條語句都是不同的,因此ORACLE會把每條語句硬解析一次,其效率就比前面那段就低得多了。)
SQL> declare2 ? ? ? ? ?i number;3 ? ? ? ? ?sqlstr varchar(2000);4 ? ? ? ? ?begin5 ? ? ? ? ?for i in 1..1000 loop6 ? ? ? ? ?sqlstr :='insert into t values(:i)';7 ? ? ? ? ?execute immediate sqlstr using i;8 ? ? ? ? ?end loop;9 ? ? ? ? ?end;10 ? ? ? ? ?/
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.19(使用了綁定變量執行1000條時 只有第一條硬解析)
來自為知筆記(Wiz)
轉載于:https://www.cnblogs.com/xiaoxiao5ya/p/deb78237d964e15a283d13ff2300c877.html
總結
以上是生活随笔為你收集整理的day18——sql优化——绑定变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 换一个安全气囊需要多少钱
- 下一篇: 30年的茅台多少钱啊?