成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle綁定變量如何提升相關(guān)效率

數(shù)據(jù)庫(kù) Oracle
Oracle綁定變量是在一般的情況下可以提升相關(guān)效率,但是Oracle綁定變量在非正常的情況也會(huì)經(jīng)常出現(xiàn),以下就是相關(guān)內(nèi)容的介紹。

當(dāng)我們把一個(gè)sql語(yǔ)句提交完后,Oracle綁定變量會(huì)檢查一下在共享緩沖池(shared pool)中有無(wú)與之完全相同的相關(guān)語(yǔ)句,如果有的話只須執(zhí)行軟分析即可,否則就得進(jìn)行硬分析。以下就是文章的具體內(nèi)容介紹。
而唯一使得oracle 能夠重復(fù)利用執(zhí)行計(jì)劃的方法就是采用綁定變量。綁定變量的實(shí)質(zhì)就是用于替代sql語(yǔ)句中的常量的替代變量。綁定變量能夠使得每次提交的sql語(yǔ)句都完全一樣。

在字段(包括字段集)建有索引,且字段(集)的集的勢(shì)非常大(也就是有個(gè)值在字段中出現(xiàn)的比例特別的大)的情況下,使用綁定變量可能會(huì)導(dǎo)致查詢計(jì)劃錯(cuò)誤,因而會(huì)使查詢效率非常低。這種情況最好不要使用綁定變量。

但是并不是任何情況下都需要使用綁定變量,下面是兩種例外情況:

1.對(duì)于隔相當(dāng)一段時(shí)間才執(zhí)行一次的SQL語(yǔ)句,這是利用綁定變量的好處會(huì)被不能有效利用優(yōu)化器而抵消

2.?dāng)?shù)據(jù)倉(cāng)庫(kù)的情況下。

綁定變量不能當(dāng)作嵌入的字符串來(lái)使用,只能當(dāng)作語(yǔ)句中的變量來(lái)用。不能用Oracle綁定變量來(lái)代替表名、過(guò)程名、字段名等.

從效率來(lái)看,由于Oracle10G放棄了RBO,全面引入CBO,因此,在10G中使用綁定變量效率的提升比9i中更為明顯。

舉例:

普通sql語(yǔ)句:

SELECT fname, lname, pcode FROM cust WHERE id = 674;

SELECT fname, lname, pcode FROM cust WHERE id = 234;

SELECT fname, lname, pcode FROM cust WHERE id = 332;

含綁定變量的sql 語(yǔ)句:

SELECT fname, lname, pcode FROM cust WHERE id = :cust_no;

Sql*plus 中使用Oracle綁定變量:

SQL> set timing on

SQL> variable x number;

SQL> exec :x :=8

PL/SQL 過(guò)程已成功完成。

已用時(shí)間: 00: 00: 00.03

SQL> select * from A;

ID

3

5

已用時(shí)間: 00: 00: 00.06

SQL> insert into A values(:x);

已創(chuàng)建 1 行。

已用時(shí)間: 00: 00: 00.01

SQL> select * from A;

ID

3

8

5

已用時(shí)間: 00: 00: 00.01

PL/SQL很多時(shí)候都會(huì)自動(dòng)綁定變量而無(wú)需編程人員操心,即很多你寫(xiě)得sql語(yǔ)句都會(huì)自動(dòng)利用Oracle綁定變量,如下例所示:

SQL> Set timing on

SQL> declare

2 I NUMBER;

3 BEGIN

4 FOR I IN 1..1000 LOOP

5 INSERT INTO A VALUES(I);

6 end loop;

7 end;

8 /

PL/SQL 過(guò)程已成功完成。

已用時(shí)間: 00: 00: 00.12

這段代碼是不需要使用Oracle綁定變量的方法來(lái)提高效率的,Oracle會(huì)自動(dòng)將其中的變量綁定。

SQL> create table D ( id varchar(10));

表已創(chuàng)建。

已用時(shí)間: 00: 00: 00.50

SQL> declare

2 i number;

3 sqlstr varchar(2000);

4 begin

5 for i in 1..1000 loop

6 sqlstr :=' insert into d values('||to_char(i)||')';

7 execute immediate sqlstr;

8 end loop;

9 end;

10 /

PL/SQL 過(guò)程已成功完成。

已用時(shí)間: 00: 00: 00.68

這段代碼同樣是執(zhí)行了1000條insert語(yǔ)句,但是每一條語(yǔ)句都是不同的,因此Oracle會(huì)把每條語(yǔ)句硬解析一次,其效率就比前面那段就低得多了。如果要提高效率,不妨使用綁定變量將循環(huán)中的語(yǔ)句改為

SQL> declarev

2 i number;

3 sqlstr varchar(2000);

4 begin

5 for i in 1..1000 loop

6 sqlstr :=' insert into d values(:i)';

7 execute immediate sqlstr using i;

8 end loop;

9 end;

10 /

PL/SQL 過(guò)程已成功完成。

已用時(shí)間: 00: 00: 00.18

這樣執(zhí)行的效率就高得多了。

在PL/SQL中,引用變量即是引用綁定變量。但是在pl/sql中動(dòng)態(tài)sql并不是這樣。在vb,java以及其他應(yīng)用程序中都得顯式地利用Oracle綁定變量。對(duì)于綁定變量的支持不僅僅限于Oracle,其他RDBMS向SQL SERVER也支持這一特性。
 

【編輯推薦】

  1. Oracle reports工具的使用
  2. 配置Oracle ebs的oaf開(kāi)發(fā)環(huán)境的操作步驟
  3. Oracle中join用法的演示
  4. Oracle DBA速成法的潛規(guī)則
  5. Oracle Names服務(wù)的實(shí)際操作
責(zé)任編輯:佚名 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-04-07 16:54:55

Oracle性能

2021-06-21 11:05:30

CSS前端代碼

2010-04-06 16:36:55

Oracle綁定變量

2024-08-30 17:14:34

2015-07-28 10:42:34

DevOpsIT效率

2010-04-23 16:35:02

Oracle 查詢記錄

2010-04-02 15:53:36

Oracle綁定變量

2010-04-27 09:28:55

綁定變量

2010-03-31 15:03:54

Oracle執(zhí)行

2010-05-04 16:31:34

Oracle數(shù)據(jù)庫(kù)

2010-04-01 14:14:56

Oracle綁定變量

2012-11-21 17:35:21

Oracle技術(shù)嘉年華

2013-03-11 16:50:56

效率項(xiàng)目開(kāi)發(fā)效率

2009-07-01 13:54:41

Servlet和JSP

2010-11-24 10:13:00

2022-05-30 14:33:55

MLOpsIDC人工智能

2013-02-22 09:36:32

ImpalaHadoop大數(shù)據(jù)Cloudera

2023-02-25 21:52:20

算法技術(shù)

2015-10-28 15:35:33

Oracle策略

2009-03-11 17:31:46

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 婷婷色网 | 羞羞视频在线观看网站 | 精品在线观看一区二区 | 一区二区三区国产好的精 | 久久久黑人 | 国产高清一区二区三区 | 精品国产精品一区二区夜夜嗨 | 秋霞影院一区二区 | 岛国视频 | 91精品综合久久久久久五月天 | 亚洲欧美精品一区 | 久久久无码精品亚洲日韩按摩 | 久久久精品一区 | 欧洲一区二区三区 | 九九导航 | 蜜臀久久99精品久久久久野外 | 羞羞视频网站免费观看 | 黄色成人免费在线观看 | 韩日一区| 国产精品免费大片 | 6996成人影院网在线播放 | 日韩成人在线网址 | 九九热视频这里只有精品 | 国产一区二区视频在线观看 | 亚洲人在线 | 欧美在线视频网站 | 成人国产精品一级毛片视频毛片 | 国产精品乱码一二三区的特点 | 日韩欧美一级精品久久 | a欧美| 欧美日韩视频在线 | 岛国av一区二区 | 米奇成人网 | 精品国产乱码久久久久久闺蜜 | 国产精品久久久久久福利一牛影视 | 国内精品久久精品 | 亚洲国产二区 | 在线观看第一页 | 亚洲国产片 | 黄色一级在线播放 | 中文字幕视频在线观看 |