婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > update 子查詢使用介紹

update 子查詢使用介紹

熱門標(biāo)簽:城市地圖標(biāo)志怎么標(biāo)注 硅基電話機器人官網(wǎng) 電話機器人怎么看余額 長沙外呼系統(tǒng)平臺 美國地圖標(biāo)注軟件下載 漯河電銷回?fù)芡夂粝到y(tǒng) 合肥crm外呼系統(tǒng)加盟 西安電話自動外呼系統(tǒng) 怎么修改高德地圖標(biāo)注

基礎(chǔ)知識
1, 關(guān)聯(lián)子查詢和非關(guān)聯(lián)子查詢

在非關(guān)聯(lián)子查詢中,內(nèi)部查詢只執(zhí)行一次并返回它的值給外部查詢,然后外部查詢在它的處理中使用內(nèi)部查詢返回給它的值。而在關(guān)聯(lián)子查詢中,對于外部查詢返回的每一行數(shù)據(jù),內(nèi)部查詢都要執(zhí)行一次。另外,在關(guān)聯(lián)子查詢中是信息流是雙向的。外部查詢的每行數(shù)據(jù)傳遞一個值給子查詢,然后子查詢?yōu)槊恳恍袛?shù)據(jù)執(zhí)行一次并返回它的記錄。然后,外部查詢根據(jù)返回的記錄做出決策。

如:

SELECT o1.CustomerID, o1.OrderID, o1.OrderDate
FROM Orders o1
WHERE o1.OrderDate = (SELECT Max(OrderDate)
FROM Orders o2
WHERE o2.CustomerID = o1.CustomerID)

是一個關(guān)聯(lián)子查詢

SELECT o1.CustomerID, o1.OrderID, o1.OrderDate
FROM Orders o1
WHERE o1.OrderDate IN
(SELECT TOP 2 o2.OrderDate
FROM Orders o2
WHERE o2.CustomerID = o1.CustomerID)
ORDER BY CustomerID

是一個非關(guān)聯(lián)子查詢

2, 提示(HINT)

一般在優(yōu)化時,無論采用基于規(guī)則的或是基于代價的方法,由Oracle系統(tǒng)的優(yōu)化器來決定語句的執(zhí)行路徑。這樣的選擇的路徑不要見得是最好的。所以,Oracle提供了一種方法叫提示的方法。它可以讓編程人員按照自己的要求來選擇執(zhí)行路徑,即提示優(yōu)化器該按照什么樣的執(zhí)行規(guī)則來執(zhí)行當(dāng)前的語句。這樣可以在性能上比起Oracle優(yōu)化自主決定要好些。

通常情況下,編程人員可以利用提示來進行優(yōu)化決策。通過運用提示可以對下面內(nèi)容進行指定:


l SQL語句的優(yōu)化方法;

l 對于某條SQL語句,基于開銷優(yōu)化程序的目標(biāo);

l SQL語句訪問的訪問路徑;
l 連接語句的連接次序;
l 連接語句中的連接操作。

如果希望優(yōu)化器按照編程人員的要求執(zhí)行,則要在語句中給出提示。提示的有效范圍有限制,即有提示的語句塊才能按照提示要求執(zhí)行。下面語句可以指定提示:

l 簡單的SELECT ,UPDATE ,DELETE 語句;
l 復(fù)合的主語句或子查詢語句;
l 組成查詢(UNION)的一部分。

提示的指定有原來的注釋語句在加“+”構(gòu)成。語法如下:

[ SELECT | DELETE|UPDATE ] /*+ [hint | text ] */

[ SELECT | DELETE|UPDATE ] --+ [hint | text ]

注意在“/*”后不要空就直接加“+”,同樣 “--+”也是連著寫。

警告:如果該提示語句書寫不正確,則Oracle就忽略掉該語句。

常見的提示有:

Ordered 強制按照from子句中指定的表的順序進行連接
Use_NL 強制指定兩個表間的連接方式為嵌套循環(huán)(Nested Loops)
Use_Hash 強制指定兩個表間的連接方式為哈希連接(Hash Join)
Use_Merge 強制指定兩個表間的連接方式為合并排序連接(Merge Join)
Push_Subq 讓非關(guān)聯(lián)子查詢提前執(zhí)行
Index 強制使用某個索引

3, 執(zhí)行計劃

在PL/SQL Developer的SQL WINDOWS中用鼠標(biāo)或鍵盤選中SQL語句,然后按F5,就會出現(xiàn)執(zhí)行計劃解析的界面:

4, Update的特點

Update的系統(tǒng)內(nèi)部執(zhí)行情況可以參照附文:對update事務(wù)的內(nèi)部分析.doc

使用Update的基本要點就是,

1) 盡量使用更新表上的索引,減少不必要的更新
2) 更新的數(shù)據(jù)來源花費時間盡可能短,如果無法做到就把更新內(nèi)容插入到中間表中,然后給中間表建上索引,再來更新
3) 如果更新的是主鍵,建議刪除再插入。
5, 示例用表

后面的闡述將圍繞以下兩張表展開:

Create table tab1 (workdate varchar2(8), cino varchar2(15), val1 number, val2 number);
Create table tab2 (workdate varchar2(8), cino varchar2(15), val1 number, val2 number);
Create table tab3 (workdate varchar2(8), cino varchar2(15), val1 number, val2 number);
Create table tab4 (workdate varchar2(8), cino varchar2(15), val1 number, val2 number);

workdate, cino為兩張表的關(guān)鍵字,默認(rèn)情況沒有建主鍵索引。

二,Update兩種情況

用Update更新某個表,無外乎是兩種情況:根據(jù)關(guān)聯(lián)子查詢,更新字段;通過非關(guān)聯(lián)子查詢,限定更新范圍。如果還有第三種情況,那就是前兩種情況的疊加。

1, 根據(jù)關(guān)聯(lián)子查詢,更新字段

Update tab1 t
Set (val1, val2) = (select val1, val2
from tab2
where workdate = t.workdate
and cino = t.cino);

通過tab2來更新tab1的相應(yīng)字段。執(zhí)行SQL語句時,系統(tǒng)會從tab1中一行一行讀記錄,然后再通過關(guān)聯(lián)子查詢,找到相應(yīng)的字段來更新。關(guān)聯(lián)子查詢能否通過tab1的條件快速的查找到對應(yīng)記錄,是優(yōu)化能否實現(xiàn)的必要條件。所以一般都要求在tab2上建有Unique或者排重性較高的Normal索引。執(zhí)行所用時間大概為(查詢tab1中一條記錄所用的時間 + 在tab2中查詢一條記錄所用的時間)* tab1中的記錄條數(shù)。

如果子查詢條件比較復(fù)雜,如以下語句:

Update tab1 t
Set (val1, val2) = (select val1, val2
from tab2 tt
where exists (select 1
from tab3
where workdate = tt.workdate
and cino = tt.cino)
and workdate = t.workdate
and cino = t.cino);

這時更新tab1中的每條記錄花費在子查詢上的時間將成倍增加,如果tab1中的記錄數(shù)較多,這種更新語句幾乎是不可完成。

解決方式是,把子查詢提取出來,做到中間表中,然后給中間表建上索引,用中間表來代替子查詢,這樣速度就能大大提高:

Insert into tab4
select workdate, cino, val1, val2
from tab2 tt
where exists (select 1
from tab3
where workdate = tt.workdate
and cino = tt.cino);
create index tab4_ind01 on tab4(workdate, cino);

Update tab1 t
Set (val1, val2) = (select val1, val2
from tab4 tt
where workdate = t.workdate
and cino = t.cino);

2, 通過非關(guān)聯(lián)子查詢,限定更新范圍

Update tab1 t
set val1 = 1
where (workdate, cino) in (select workdate, cino from tab2)

根據(jù)tab2提供的數(shù)據(jù)范圍,來更新tab1中的相應(yīng)記錄的val1字段。

在這種情況下,系統(tǒng)默認(rèn)執(zhí)行方式往往是先執(zhí)行select workdate, cino from tab2子查詢,在系統(tǒng)中形成系統(tǒng)視圖,然后在tab1中選取一條記錄,查詢系統(tǒng)視圖中是否存在相應(yīng)的workdate, cino組合,如果存在,則更新tab1,如果不存在,則選取下一條記錄。這種方式的查詢時間大致等于:子查詢查詢時間 + (在tab1中選取一條記錄的時間 + 在系統(tǒng)視圖中全表掃描尋找一條記錄時間)* tab1的記錄條數(shù)。其中“在系統(tǒng)視圖中全表掃描尋找一條記錄時間”會根據(jù)tab2的大小而有所不同。若tab2記錄數(shù)較小,系統(tǒng)可以直接把表讀到系統(tǒng)區(qū)中;若tab2記錄數(shù)多,系統(tǒng)無法形成系統(tǒng)視圖,這時會每一次更新動作,就把子查詢做一次,速度會非常的慢。

針對這種情況的優(yōu)化有兩種

1) 在tab1上的workdate, cino字段上加入索引,同時增加提示。

修改以后的SQL語句如下:

Update /*+ordered use_nl(sys, t)*/ tab1 t
set val1 = 1
where (workdate, cino) in (select workdate, cino from tab2)

其中sys表示系統(tǒng)視圖。如果不加入ordered提示,系統(tǒng)將會默認(rèn)以tab1表作為驅(qū)動表,這時就要對tab1作全表掃描。加入提示后,使用系統(tǒng)視圖,即select workdate, cino from tab2,作為驅(qū)動表,在正常情況下,速度能提高很多。

2) 在tab2表上的workdate, cino字段加入索引,同時改寫SQL語句:

Update tab1 t
set val1 = 1
where exists (select 1
from tab2
where workdate = t.workdate
and cino = t.cino)

三,索引問題

update索引的使用比較特殊,有時看起來能用全索引,但實際上卻只用到一部分,所以建議把復(fù)合索引的各字段寫在一起。

例如:

Update /*+ordered use_nl(sys, t)*/ tab1 t
set val1 = 1
where cino in (select cino from tab2)
and workdate = '200506'

這條SQL語句是不能完全用到tab1上的復(fù)合索引workdate + cino的。能用到的只是workdate='200506'的約束。

如果寫成這樣,就沒問題:

Update /*+ordered use_nl(sys, t)*/ tab1 t
set val1 = 1
where (workdate, cino) in (select workdate, cino from tab2)

標(biāo)簽:玉溪 商洛 文山 濟源 撫順 瀘州 吉林 廣西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《update 子查詢使用介紹》,本文關(guān)鍵詞  update,子,查詢,使用,介紹,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《update 子查詢使用介紹》相關(guān)的同類信息!
  • 本頁收集關(guān)于update 子查詢使用介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美成人综合网站| 91麻豆精品国产91久久久使用方法 | 成人高清视频在线观看| 中文字幕亚洲成人| 中文字幕日韩av资源站| a美女胸又www黄视频久久| 欧美日韩精品三区| 色偷偷久久人人79超碰人人澡| 一本到一区二区三区| 亚洲视频 欧洲视频| 亚洲高清不卡在线观看| 日本色综合中文字幕| 国产成人在线免费| 欧美性猛交一区二区三区精品 | 91麻豆国产香蕉久久精品| 99精品欧美一区二区三区小说| 91激情在线视频| 欧美激情一区三区| 亚洲欧美日韩国产一区二区三区 | 欧美哺乳videos| 高清不卡在线观看av| 日韩一区二区在线观看| 伊人婷婷欧美激情| 国产aⅴ综合色| 亚洲日本va午夜在线影院| 欧美午夜在线观看| 蜜臀av一级做a爰片久久| 欧美私人免费视频| 久久精工是国产品牌吗| 欧美老女人第四色| 亚洲va国产va欧美va观看| www.亚洲人| 视频一区中文字幕国产| 欧美日本视频在线| 盗摄精品av一区二区三区| 欧美精品一区二区蜜臀亚洲| 亚洲成人免费看| 久久精品无码一区二区三区| 香蕉久久夜色精品国产使用方法| 欧美电视剧在线观看完整版| 午夜婷婷国产麻豆精品| 欧美色综合网站| 国产伦精品一区二区三区视频青涩| 337p亚洲精品色噜噜| 国产999精品久久| 水蜜桃久久夜色精品一区的特点| 精品一区二区三区在线播放| 色播五月激情综合网| 韩国女主播成人在线| 精品国产一区二区三区忘忧草| 91美女精品福利| 国产精品一卡二卡在线观看| 久久久久久久免费视频了| 久久av资源站| 亚洲香蕉伊在人在线观| 亚洲日本在线看| 久久女同精品一区二区| 欧美精选一区二区| 一本久久精品一区二区| 懂色av一区二区三区免费观看| 日韩电影在线一区二区三区| 一区二区三区 在线观看视频| 91高清视频在线| 不卡的av电影| 国产精品123区| 国产又粗又猛又爽又黄91精品| 亚洲午夜久久久久久久久电影院| 中文字幕制服丝袜一区二区三区 | 在线看日韩精品电影| 亚洲午夜国产一区99re久久| 亚洲欧美日韩电影| 亚洲视频综合在线| 国产精品久久久久久久久晋中 | 麻豆精品新av中文字幕| 亚洲.国产.中文慕字在线| 亚洲精品高清在线| 亚洲免费毛片网站| 亚洲人亚洲人成电影网站色| 国产精品久久久久aaaa| 欧美国产日韩a欧美在线观看 | 国产欧美一区二区精品秋霞影院| 懂色av噜噜一区二区三区av| 久久99这里只有精品| 久久国产生活片100| 免费在线观看一区二区三区| 国产女主播视频一区二区| 久久伊人蜜桃av一区二区| 日本精品免费观看高清观看| 91在线视频播放地址| 色婷婷av一区二区三区软件| 色综合激情久久| 欧美色偷偷大香| 国产成人精品免费视频网站| 国产成人在线免费| 91小视频在线免费看| 91国产精品成人| 欧美一区二区在线视频| 欧美色区777第一页| 欧美一级精品在线| 国产亚洲一区字幕| 日韩美女视频一区二区| 亚洲成av人影院| 国产一区二区三区免费播放| 成人一道本在线| 在线看不卡av| 欧美人动与zoxxxx乱| 日韩女同互慰一区二区| 国产精品视频一区二区三区不卡| 日韩欧美国产一二三区| 国产欧美一区二区精品性| 亚洲色图一区二区| 美日韩一区二区三区| 国产69精品久久久久毛片| 91国内精品野花午夜精品| 日韩免费性生活视频播放| 国产精品国产自产拍在线| 一区二区欧美在线观看| 精品综合久久久久久8888| av电影天堂一区二区在线| 欧美美女一区二区在线观看| 欧美精品一区二区三区在线播放| 亚洲欧美偷拍三级| 麻豆精品精品国产自在97香蕉| 成人小视频免费观看| 制服丝袜亚洲色图| 国产精品久久久久四虎| 午夜一区二区三区视频| 国产成人av一区二区| 欧美福利电影网| 亚洲国产精品黑人久久久| 日韩一级二级三级精品视频| 亚洲第一激情av| 久久99国产精品麻豆| 99久久er热在这里只有精品66| 欧美一区三区四区| 日韩理论在线观看| 国产麻豆精品在线| 欧美一区二区啪啪| 亚洲精品成人天堂一二三| 久久99精品久久久久久国产越南 | 在线观看亚洲专区| 久久久国产午夜精品| 日韩高清不卡在线| 欧美中文字幕一二三区视频| 久久精品欧美日韩精品| 日本美女视频一区二区| 91成人网在线| 国产精品国产自产拍高清av| 国产在线播放一区| 精品国产91久久久久久久妲己 | 国产精品久久久久久妇女6080 | 另类的小说在线视频另类成人小视频在线 | 亚洲免费观看高清完整版在线 | 69成人精品免费视频| 一区二区三区在线免费播放| 国产经典欧美精品| 国产亚洲一二三区| 国产一区二区免费在线| 亚洲伊人色欲综合网| 欧美精品一区二区三| 婷婷成人激情在线网| 欧美视频自拍偷拍| 一区二区三区欧美亚洲| 一本大道综合伊人精品热热| 国产精品嫩草久久久久| 粉嫩在线一区二区三区视频| 久久久精品影视| 极品尤物av久久免费看| 5566中文字幕一区二区电影| 亚洲国产乱码最新视频| 欧美精品乱人伦久久久久久| 偷拍一区二区三区| 日韩一区二区三区电影| 美女一区二区三区| www久久精品| 激情五月播播久久久精品| 久久精品人人爽人人爽| 成人高清视频在线观看| 亚洲精品视频一区| 欧美在线视频日韩| 亚洲一区影音先锋| 欧美精品在线观看播放| 五月婷婷综合激情| 欧美xxxxxxxx| 国产精品一区专区| 亚洲图片你懂的| 欧美日韩免费不卡视频一区二区三区| 亚洲福利一区二区| 日韩欧美久久一区| 国产99久久久久久免费看农村| 国产精品丝袜一区| 欧美特级限制片免费在线观看| 免播放器亚洲一区| 国产日产欧美一区| 91美女视频网站| 亚洲成人免费在线| 久久久影视传媒| 色综合久久综合| 日本va欧美va精品发布| 国产蜜臀97一区二区三区|