新聞中心
oracle解析規(guī)則?
1)語(yǔ)法檢查(syntax check)

公司主營(yíng)業(yè)務(wù):網(wǎng)站設(shè)計(jì)、做網(wǎng)站、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)建站推出鄂托克前免費(fèi)做網(wǎng)站回饋大家。
2)語(yǔ)義檢查(symantic check): 對(duì)象是否存在,是否有權(quán)限。
3)sql解析(parse): 利用內(nèi)部算法對(duì)sql進(jìn)行解析,生成解析樹(shù)及執(zhí)行計(jì)劃。
4)執(zhí)行sql,返回結(jié)果(execute and return)
一個(gè)sql 語(yǔ)句,進(jìn)入到數(shù)據(jù)庫(kù)后,server process 會(huì)拿著sql語(yǔ)句到shared pool中的library cache 里邊去找,看sql語(yǔ)句以前是否有執(zhí)行過(guò)。也就是在library cache 里面看有沒(méi)有這條sql語(yǔ)句以及sql語(yǔ)句所對(duì)應(yīng)的執(zhí)行計(jì)劃。(此過(guò)程是通過(guò)對(duì)傳遞進(jìn)來(lái)的SQL語(yǔ)句使用HASH函數(shù)運(yùn)算得出HASH值,與共享池中現(xiàn)有語(yǔ)句的HASH值進(jìn)行比較看是否一一對(duì)應(yīng)?,F(xiàn)有數(shù)據(jù)庫(kù)中SQL語(yǔ)句的HASH值我們可以通過(guò)訪問(wèn)vsql、vsql、vsqlarea、v$sqltext等數(shù)據(jù)字典中的HASH_VALUE列查詢得出。)
Oracle的解析規(guī)則是指當(dāng)多個(gè)游標(biāo)(cursor)都指向同一個(gè)SQL語(yǔ)句時(shí),Oracle如何確定哪個(gè)游標(biāo)使用哪個(gè)SQL語(yǔ)句的解析結(jié)果。
Oracle的解析規(guī)則如下:
每個(gè)游標(biāo)都會(huì)有一個(gè)獨(dú)立的SQL區(qū)域,其中存儲(chǔ)著該游標(biāo)對(duì)應(yīng)的SQL語(yǔ)句。當(dāng)游標(biāo)被打開(kāi)時(shí),Oracle會(huì)在內(nèi)存中為該SQL語(yǔ)句分配一個(gè)私有SQL區(qū)域。
當(dāng)多個(gè)游標(biāo)都指向同一個(gè)SQL語(yǔ)句時(shí),Oracle會(huì)為每個(gè)游標(biāo)創(chuàng)建一個(gè)獨(dú)立的解析樹(shù),并將該解析樹(shù)存儲(chǔ)在PGA(Program Global Area)的私有SQL區(qū)域中。
當(dāng)某個(gè)游標(biāo)需要執(zhí)行該SQL語(yǔ)句時(shí),Oracle會(huì)檢查該游標(biāo)的私有SQL區(qū)域中是否存在該SQL語(yǔ)句的解析結(jié)果。如果存在,則直接使用該解析結(jié)果;如果不存在,則需要對(duì)該SQL語(yǔ)句進(jìn)行解析。
到此,以上就是小編對(duì)于oracle游標(biāo)的使用詳解的問(wèn)題就介紹到這了,希望這1點(diǎn)解答對(duì)大家有用。
網(wǎng)頁(yè)題目:oracle解析規(guī)則?(oracle游標(biāo)怎么使用)
分享路徑:http://m.5511xx.com/article/cddoipd.html


咨詢
建站咨詢
