1、Oracle Concepts Guide一書中詳細(xì)地講解了SQL語言和數(shù)據(jù)庫的每個(gè)部分。建議使用Oracle的人都去讀一讀《Oracle Concepts Guide》。
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、松滋ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的松滋網(wǎng)站制作公司
2、共享池和數(shù)據(jù)庫高速緩存
2.1 SGA共享池:共享SQL/PL/SQL代碼在用戶之間
共享池存放的內(nèi)容:SQL語句和Oracle使用的系統(tǒng)參數(shù)(在一塊被稱為數(shù)據(jù)字典高速緩存的區(qū)域)Oracle將你能想到的幾乎所有東西都存在共享池中。
分配給共享池的內(nèi)存區(qū)域是有限的,所以當(dāng)新語句執(zhí)行時(shí),原先已經(jīng)加載的語句就不
能長時(shí)間的放在其中。有一種算法叫做最近最少使用(Least Recently Used, LRU),它可以用來管理共享池中的對象。
2.2 庫高速緩存
解析:庫高速緩存主要是存在已經(jīng)解析過的語句的區(qū)域。
軟解析:Oracle 取回之前解析的信息并重用。
硬解析:語句之前沒有執(zhí)行過,那么Oracle將執(zhí)行所有的工作來為當(dāng)前的語句生成執(zhí)行計(jì) 劃,并且將它存在緩存中以便將來重用。
每次進(jìn)行硬解析時(shí),在能夠?qū)嶋H執(zhí)行語句之前,Oralce必須收集它的所有信息。多次查詢數(shù)據(jù)字典。
****硬解析干了什么?
打開追蹤數(shù)據(jù)。擴(kuò)展的SQL追蹤能抓取執(zhí)行過程中發(fā)生的每個(gè)活動(dòng),你能看到所執(zhí)行的語句和Oracle必須執(zhí)行的每個(gè)語句。
2.3 完全相同的語句
通過查詢v$sql視圖可以看到存在庫高速緩存中執(zhí)行過的sql語句:
select sql_text, sql_id, child_number, hash_value, executions from v$sql where upper(sql_text) like '%EMPLOYEESS%';
如何檢查sql語句是否完全相同,oracle會首先將字符串轉(zhuǎn)換為散列值。這個(gè)散列值就作為該語句存放到庫高速緩存是的關(guān)鍵字。通過比較散列值來尋找匹配。
任何的不同都會導(dǎo)致散列值的不同,這也是為什么在你的sql語句中使用綁定變量而不是常量會如此重要的原因。當(dāng)使用綁定變量時(shí),即使你改變了綁定變量的值,Oracle還是可以共享這個(gè)語句。
在獲取庫高速緩存中的任何信息之前,Oracle都會獲得一個(gè)鎖存器,其他所有繪畫都必須等待,直到該鎖存器被釋放它們才能獲得鎖存器已完成工作。
互斥鎖,是一個(gè)序列化組件,用來阻止多個(gè)線程同時(shí)訪問一個(gè)共享結(jié)構(gòu)。
與鎖存器相比,互斥鎖最大的優(yōu)勢在于:占用的內(nèi)存較少,并且可以快速釋放。
需要注意的是:語法解析仍然需要使用庫高速緩存鎖存器。使你的代碼較少使用鎖存器(也就是硬解析)是非常關(guān)鍵的。
網(wǎng)頁標(biāo)題:Oracle之SQL執(zhí)行
鏈接URL:http://aaarwkj.com/article48/pcchhp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、動(dòng)態(tài)網(wǎng)站、網(wǎng)站建設(shè)、微信小程序、全網(wǎng)營銷推廣、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)