国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Oracle數(shù)據(jù)庫SQL語句綁定變量一----性能問題

2019-11-08 20:51:14
字體:
供稿:網(wǎng)友

SQL語句編寫時,一般都是這樣的:

select * from emp where empno=7369;

或者select * from emp where empno=7499;

這兩條SQL語句對于Oracle來說是兩條不同的SQL語句,換句話說是執(zhí)行兩條語句時,都會經(jīng)歷:1、語法語義檢查;2、硬解析;3、形成執(zhí)行計劃;4、返回相應(yīng)數(shù)據(jù)

大致的步驟是這樣的,其中硬解析是非常消耗資源的,比如CPU,內(nèi)存,其中SGA中的latch的爭用是我需要重點提到的,因為這是一種串行結(jié)構(gòu)。

綁定變量只需要解析一次SQL語句的文本即可,換句話說,前面兩句語句可以寫成一條,讓Oracle重復(fù)使用已經(jīng)解析好的信息,比如解析樹,執(zhí)行計劃等,話句話說執(zhí)行:

select * from emp where empno=7499;時無需執(zhí)行硬解析,減少了latch的爭用。

詳細硬解析和軟解析,軟軟解析等以后再詳細介紹。

今天主要介紹下,綁定變量與沒有綁定變量的性能?

下面創(chuàng)建兩個過程PRoc1,proc2:

create or replace procedure proc1 asbeginfor i in 1 .. 10000 loopexecute immediate  'insert into t values('||i||')';end loop;end;

create or replace procedure proc2 asbeginfor i in 1 .. 10000 loopexecute immediate  'insert into t values(:x)' using i;end loop;end;

執(zhí)行proc1:

執(zhí)行proc2:

很明顯綁定變量與沒有綁定變量的性能差別是非常大的,這也是需要在開發(fā)應(yīng)用程序中使用綁定變量的很重要的性能目的。

文章的參考:《Oracle編程藝術(shù)深入理解數(shù)據(jù)庫體系結(jié)構(gòu)》


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 安庆市| 高雄市| 巴林右旗| 武安市| 吴川市| 资阳市| 屏东市| 山阳县| 抚松县| 中西区| 全州县| 扬中市| 九龙县| 嘉峪关市| 南乐县| 富源县| 麻江县| 平谷区| 德令哈市| 彝良县| 凤翔县| 吉木萨尔县| 城市| 赣州市| 商都县| 古丈县| 仙游县| 泾阳县| 沁源县| 宁陵县| 瓮安县| 阿合奇县| 白朗县| 中超| 佛教| 吴忠市| 辽阳市| 错那县| 庐江县| 西乡县| 耿马|