版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SQL語(yǔ)句的執(zhí)行過程以及數(shù)據(jù)庫(kù)內(nèi)存結(jié)構(gòu)?SQL語(yǔ)句的執(zhí)行過程
?數(shù)據(jù)庫(kù)的內(nèi)存結(jié)構(gòu)DDL(數(shù)據(jù)定義語(yǔ)言)DML(數(shù)據(jù)操縱語(yǔ)言)SQL語(yǔ)句的類型修改Oracle數(shù)據(jù)字典所執(zhí)行的語(yǔ)句。它們是創(chuàng)建表、增加用戶、刪除表中的列、創(chuàng)建觸發(fā)器等的語(yǔ)句例如:CREATETABLE、CREATEUSER、CREATEPACKAGE、ALTERTABLE、CREATEPROCEDUREDDL(數(shù)據(jù)定義語(yǔ)言)訪問和修改數(shù)據(jù)庫(kù)中數(shù)據(jù)所執(zhí)行的語(yǔ)句。這些語(yǔ)句包括SELECT、INSERT、MERGE、UPDATE和DELETE命令DML(數(shù)據(jù)操縱語(yǔ)言)Oracle執(zhí)行一條語(yǔ)句從開始到結(jié)束經(jīng)過4個(gè)步驟:分析對(duì)提交的語(yǔ)句進(jìn)行語(yǔ)法和語(yǔ)義檢查優(yōu)化生成一個(gè)可在數(shù)據(jù)庫(kù)中用來(lái)執(zhí)行語(yǔ)句的最佳計(jì)劃行資源生成為會(huì)話取得最佳計(jì)劃和建立執(zhí)行計(jì)劃語(yǔ)句執(zhí)行完成實(shí)際執(zhí)行查詢的行資源生成步驟的輸出語(yǔ)句執(zhí)行過程語(yǔ)法分析查詢是不是合法的語(yǔ)句語(yǔ)義分析如果是合法的語(yǔ)句,還需要檢查是否具有訪問權(quán)限、訪問的列是否在所訪問的表中、是否存在歧義共享池檢查如果是DML語(yǔ)句還需要進(jìn)行共享池檢查,此語(yǔ)句是否已經(jīng)被其他用戶分析過且Oracle可重用已經(jīng)執(zhí)行的工作,如果是就進(jìn)行軟分析,如果不是就進(jìn)行硬分析。DDL總是硬分析,從不重用分析共享池概念是Oracle體系結(jié)構(gòu)的一個(gè)關(guān)鍵成分。共享池是Oracle共享全局區(qū)(SGA)中的一塊內(nèi)存,其中庫(kù)高速緩存區(qū)存放以前執(zhí)行過的SQL語(yǔ)句、PL/SQL代碼,數(shù)據(jù)字典高速緩存區(qū)存放字典信息硬分析軟分析共享池檢查分析查詢檢查語(yǔ)法驗(yàn)證語(yǔ)義計(jì)算散列值找到一個(gè)匹配驗(yàn)證存在一個(gè)與我們的查詢完全相同的查詢(引用相同的對(duì)象)確認(rèn)我們具有訪問所有引用對(duì)象的必須的權(quán)限驗(yàn)證語(yǔ)句在相同的環(huán)境中執(zhí)行如果是軟分析就直接跳過下面的優(yōu)化和行資源生成這一重要步驟硬分析和軟分析所有DML語(yǔ)句第一次提交給Oracle時(shí),在它們的生存期中至少要優(yōu)化一次。優(yōu)化發(fā)生在硬分析中。語(yǔ)句義上和語(yǔ)法上完全相同,且執(zhí)行環(huán)境也相同的語(yǔ)句的執(zhí)行可以利用以前硬分析的工作。在此情形下,對(duì)它們進(jìn)行軟分析。硬分析包括查詢優(yōu)化步驟。這是一種費(fèi)勁的、CPU密集型的處理過程,所花的時(shí)間可能比語(yǔ)句的實(shí)際執(zhí)行時(shí)間還要長(zhǎng)。查詢優(yōu)化工作是要找到可能是最好的執(zhí)行計(jì)劃優(yōu)化和行資源生成基于規(guī)則則的優(yōu)化化程序((RBO)這種優(yōu)化化程序基基于一組組規(guī)則建建立查詢?cè)冇?jì)劃。。它不考考慮對(duì)象象尺寸、、列的基基數(shù)、數(shù)數(shù)據(jù)的分分布、排排序區(qū)尺尺寸以及及其它因因素。查查詢優(yōu)化化只能利利用已經(jīng)經(jīng)編好的的規(guī)則。?;诔杀颈镜膬?yōu)化化程序((CBO)這種優(yōu)化化程序根根據(jù)收集集的實(shí)際際訪問數(shù)數(shù)據(jù)的統(tǒng)統(tǒng)計(jì)信息息對(duì)查詢?cè)冞M(jìn)行優(yōu)優(yōu)化。在在確定最最合適的的計(jì)劃是是,它將將使用行行數(shù)、數(shù)數(shù)據(jù)集的的尺寸以以及許多多其他信信息。CBO將生成許許多(或或許數(shù)千千)可能能的查詢?cè)冇?jì)劃((解決查查詢的預(yù)預(yù)備途徑徑),并并給每個(gè)個(gè)查詢計(jì)計(jì)劃賦予予一個(gè)數(shù)數(shù)值成本本。采用用具有最最低成本本的查詢?cè)冇?jì)劃優(yōu)化程序序模式優(yōu)化之后后就是行行資源生生成,行行資源生生成器是是Oracle中的一個(gè)個(gè)軟件,,它接受受優(yōu)化程程序的輸輸出,將將它格式式化為實(shí)實(shí)際的執(zhí)執(zhí)行計(jì)劃劃。例如:在在使用SQL*PLUS中的AUTOTRACE實(shí)用程序序時(shí),它它打印查查詢計(jì)劃劃行資源生生成語(yǔ)句執(zhí)行行的最后后步驟是是利用資資源生成成器的輸輸出實(shí)際際執(zhí)行語(yǔ)語(yǔ)句。它它是DML執(zhí)行中唯唯一的強(qiáng)強(qiáng)制性的的步驟。??梢蕴^分析析、優(yōu)化化和行資資源生成成步驟。。反復(fù)執(zhí)執(zhí)行語(yǔ)句句。因?yàn)闉檫@是目目前為止止最高效效的方法法,只要要有可能能,我們們都希望望建立符符合“分分析一次次,執(zhí)行行許多次次”規(guī)則則的應(yīng)用用程序。。執(zhí)行OVERALLTOTALSFORALLNON-RECURSIVESTATEMENTScallcountcpuelapseddiskquerycurrentrows-----------------------------------------------------------------------Parse120.040.120200Execute120.020.0402682923Fetch48560.860.8107703072673-----------------------------------------------------------------------total48800.930.98079732972696count:提供供OCI過程的的執(zhí)行行次數(shù)數(shù)CPU:提提供執(zhí)執(zhí)行CPU所花的的時(shí)間間單位位是秒秒Elapsed:提供供了執(zhí)執(zhí)行時(shí)時(shí)所花花的時(shí)時(shí)間。。單位位是秒秒。這這個(gè)參參數(shù)值值等于于用戶戶響應(yīng)應(yīng)時(shí)間間Disk:提供供緩存存區(qū)從從磁盤盤讀取取的次次數(shù)Query:以一一致性性模式式從緩緩存區(qū)區(qū)獲得得數(shù)據(jù)據(jù)的次次數(shù)Current:以當(dāng)當(dāng)前模模式從從緩存存區(qū)獲獲得數(shù)數(shù)據(jù)的的次數(shù)數(shù)ROWs:返返回調(diào)調(diào)用或或執(zhí)行行調(diào)用用時(shí),,處理理的數(shù)數(shù)據(jù)行行的數(shù)數(shù)量。。10:34:55SQL>select*fromdept;Elapsed:00:00:00.10ExecutionPlan----------------------------------------------------------Planhashvalue:3383998547--------------------------------------------------------------------------|Id|Operation|Name|Rows|Bytes|Cost(%CPU)|Time|--------------------------------------------------------------------------|0|SELECTSTATEMENT||4|120|3(0)|00:00:01||1|TABLEACCESSFULL|DEPT|4|120|3(0)|00:00:01|--------------------------------------------------------------------------Note------dynamicsamplingusedforthisstatement(level=2)Statistics----------------------------------------------------------279recursivecalls0dbblockgets58consistentgets8physicalreads0redosize1630bytessentviaSQL*Nettoclient524bytesreceivedviaSQL*Netfromclient2SQL*Netroundtripsto/fromclient0sorts(memory)0sorts(disk)4rowsprocessed10:35:00SQL>/Elapsed:00:00:00.02ExecutionPlan----------------------------------------------------------Planhashvalue:3383998547--------------------------------------------------------------------------|Id|Operation|Name|Rows|Bytes|Cost(%CPU)|Time|--------------------------------------------------------------------------|0|SELECTSTATEMENT||4|120|3(0)|00:00:01||1|TABLEACCESSFULL|DEPT|4|120|3(0)|00:00:01|--------------------------------------------------------------------------Note------dynamicsamplingusedforthisstatement(level=2)Statistics----------------------------------------------------------0recursivecalls0dbblockgets8consistentgets0physicalreads0redosize802bytessentviaSQL*Nettoclient524bytesreceivedviaSQL*Netfromclient2SQL*Netroundtripsto/fromclient0sorts(memory)0sorts(disk)4rowsprocessed11:31:43SQL>l1*select*fromdeptorderby1Elapsed:00:00:00.03ExecutionPlan----------------------------------------------------------Planhashvalue:120787663---------------------------------------------------------------------------|Id|Operation|Name|Rows|Bytes|Cost(%CPU)|Time|---------------------------------------------------------------------------|0|SELECTSTATEMENT||4|120|4(25)|00:00:01||1|SORTORDERBY||4|120|4(25)|00:00:01||2|TABLEACCESSFULL|DEPT|4|120|3(0)|00:00:01|---------------------------------------------------------------------------Note------dynamicsamplingusedforthisstatement(level=2)Statistics----------------------------------------------------------0recursivecalls0dbblockgets7consistentgets0physicalreads0redosize794bytessentviaSQL*Nettoclient524bytesreceivedviaSQL*Netfromclient2SQL*Netroundtripsto/fromclient1sorts(memory)0sorts(disk)4rowsprocessedaltersystemflushshared_pool;altersystemflushbuffer_cache;Elapsed:00:00:00.20ExecutionPlan----------------------------------------------------------Planhashvalue:120787663---------------------------------------------------------------------------|Id|Operation|Name|Rows|Bytes|Cost(%CPU)|Time|---------------------------------------------------------------------------|0|SELECTSTATEMENT||4|120|4(25)|00:00:01||1|SORTORDERBY||4|120|4(25)|00:00:01||2|TABLEACCESSFULL|DEPT|4|120|3(0)|00:00:01|---------------------------------------------------------------------------Note------dynamicsamplingusedforthisstatement(level=2)Statistics----------------------------------------------------------1195recursivecalls0dbblockgets203consistentgets32physicalreads0redosize794bytessentviaSQL*Nettoclient524bytesreceivedviaSQL*Netfromclient2SQL*Netroundtripsto/fromclient13sorts(memory)0sorts(disk)4rowsprocessed數(shù)據(jù)庫(kù)緩沖區(qū)區(qū)高速緩存共享池重做日志緩沖沖區(qū)Java池(JavaPool)大池(LargePool)流池(StreamPool)數(shù)據(jù)庫(kù)內(nèi)存結(jié)結(jié)構(gòu)SGA共享池Java池流池庫(kù)高速緩存數(shù)據(jù)字典緩存存DBCACHESIZELogBuffer大池用于存儲(chǔ)最近執(zhí)行的SQL語(yǔ)句最近使用的數(shù)數(shù)據(jù)定義包括的內(nèi)存結(jié)結(jié)構(gòu)庫(kù)高速緩存數(shù)據(jù)字典高速速緩存共享池庫(kù)高速緩存包包括以下兩個(gè)個(gè)結(jié)構(gòu):共享SQL:共享SQL為針對(duì)數(shù)據(jù)庫(kù)庫(kù)運(yùn)行的SQL語(yǔ)句存儲(chǔ)并共共享執(zhí)行計(jì)劃劃和語(yǔ)法法分析樹。下下次運(yùn)行同一一SQL語(yǔ)句時(shí),這個(gè)個(gè)語(yǔ)句就能利利用共享SQL提供的語(yǔ)法分分析信息來(lái)加加快其執(zhí)行速速度。要確保保SQL語(yǔ)句隨時(shí)可以以使用共享SQL區(qū),文本、方方案和綁定變變量必須完全全相同。共享PL/SQL:共享PL/SQL區(qū)存儲(chǔ)并共享享最近執(zhí)行的的PL/SQL語(yǔ)句。經(jīng)過語(yǔ)語(yǔ)法分析和編編譯的程序單單元和過程((函數(shù)、程序序包和觸發(fā)器器)都存儲(chǔ)在在這個(gè)區(qū)中庫(kù)高速緩存數(shù)據(jù)庫(kù)中最近近使用的定義義的集合包括與數(shù)據(jù)庫(kù)庫(kù)文件、表、、索引、列、、用戶、權(quán)限限和其它數(shù)據(jù)據(jù)庫(kù)對(duì)象相關(guān)關(guān)的信息在語(yǔ)法分析階階段,服務(wù)器器進(jìn)程會(huì)在數(shù)數(shù)據(jù)字典中查查找用于解析析對(duì)象名和驗(yàn)驗(yàn)證訪問的信信息將數(shù)據(jù)字典信信息高速緩存存到內(nèi)存中,,可縮短查詢?cè)兒虳ML的響應(yīng)時(shí)間數(shù)據(jù)字典高速速緩存存儲(chǔ)已從數(shù)據(jù)據(jù)文件中檢索索到的數(shù)據(jù)塊塊的副本能夠大幅提高高獲取和更新新數(shù)據(jù)時(shí)的性性能通過LRU算法管理處理查詢時(shí),,Oracle服務(wù)器進(jìn)程在在數(shù)據(jù)庫(kù)緩沖沖區(qū)高速緩存存中查找任何何所需的塊。。如果未在數(shù)數(shù)據(jù)庫(kù)緩沖區(qū)區(qū)高速緩存中中找到這個(gè)塊塊,服務(wù)器進(jìn)進(jìn)程就從數(shù)據(jù)據(jù)文件讀取這這個(gè)塊,并在在數(shù)據(jù)庫(kù)緩沖沖區(qū)高速緩存存中放置一個(gè)個(gè)副本。由于于對(duì)同一個(gè)塊塊的后續(xù)請(qǐng)求求可以在內(nèi)存存中找到這個(gè)個(gè)塊,因此這這些請(qǐng)求可能能不需要進(jìn)行行物理讀取。。數(shù)據(jù)庫(kù)緩沖區(qū)區(qū)高速緩存Oracle服務(wù)器使用LRU(最近最少使使用算法)算算法來(lái)釋放近近期未被訪的的緩沖區(qū),以以便在數(shù)據(jù)庫(kù)庫(kù)緩沖區(qū)高速速緩存中為新新塊騰出空間間記錄對(duì)數(shù)據(jù)庫(kù)庫(kù)數(shù)據(jù)塊所做做的全部更改改主要用于恢復(fù)復(fù)其中記錄的更更改稱作重做做條目重做條目包含含用于重新構(gòu)構(gòu)造或重做更更改的信息重做日志緩沖沖區(qū)是一個(gè)循循環(huán)緩沖區(qū),,它包含對(duì)數(shù)數(shù)據(jù)文件塊所所做的各種更更改。此信息息存儲(chǔ)在重做做條目中。重重做條目包含含將數(shù)據(jù)恢復(fù)復(fù)到使用INSERT、UPDATE、DELETE、CREATE、ALTER、或DROP操作進(jìn)行更改改前的狀態(tài)所所需要的信息息。重做日志緩沖沖區(qū)Statistics----------------------------------------------------------25recursivecalls0dbblockgets2962024consistentgets45465physicalreads0redosize3972bytessentviaSQL*Nettoclient531bytesreceivedviaSQL*Netfromclient3SQL*Netroundtripsto/fromclient0sorts(memory)0sorts(disk)22rowsprocessed謝謝大家9、靜夜四無(wú)無(wú)鄰,荒居居舊業(yè)貧。。。1月-231月-23Wednesday,January4,202310、雨中黃葉樹樹,燈下白頭頭人。。23:04:5923:04:5923:041/4/202311:04:59PM11、以我獨(dú)沈久久,愧君相見見頻。。1月-2323:04:5923:04Jan-2304-Jan-2312、故故人人江江海海別別,,幾幾度度隔隔山山川川。。。。23:04:5923:04:5923:04Wednesday,January4,202313、乍乍見見翻翻疑疑夢(mèng)夢(mèng),,相相悲悲各各問問年年。。。。1月月-231月月-2323:04:5923:04:59January4,202314、他鄉(xiāng)鄉(xiāng)生白白發(fā),,舊國(guó)國(guó)見青青山。。。04一一月月202311:04:59下下午午23:04:591月-2315、比不了了得就不不比,得得不到的的就不要要。。。。一月2311:04下下午1月-2323:04January4,202316、行動(dòng)出成果果,工作出財(cái)財(cái)富。。2023/1/423:04:5923:04:5904January202317、做前前,能能夠環(huán)環(huán)視四四周;;做時(shí)時(shí),你你只能能或者者最好好沿著著以腳腳為起起點(diǎn)的的射線線向前前。。。11:04:59下下午午11:04下下午23:04:591月-239、沒沒有有失失敗敗,,只只有有暫暫時(shí)時(shí)停停止止成成功功!!。。1月月-231月月-23Wednesday,January4,202310、很多事事情努力力了未必必有結(jié)果果,但是是不努力力卻什么么改變也也沒有。。。23:04:5923:04:5923:041/4/202311:04:59PM11、成功就是是日復(fù)一日日那一點(diǎn)點(diǎn)點(diǎn)小小努力力的積累。。。1月-2323:04:5923:04Jan-2304-Jan-2312、世間成事事,不求其其絕對(duì)圓滿滿,留一份份不足,可可得無(wú)限完完美。。23:04:5923:04:5923:04Wednesday,January4,202313、不知香積寺寺,數(shù)里入云云峰。。1月-231月-2323:04:5923:04:59January4,202314、意志堅(jiān)堅(jiān)強(qiáng)的人人能把世世界放在在手中像像泥塊一一樣任意意揉捏。。04一一月202311:04:59下下午23:04:591月-2315、楚塞三三湘接,,荊門九九派通。。。。一月2311:04下下午1月-2323:04January4,202316、少年十五五二十時(shí),,步行奪得得胡馬騎。。。2
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度WPS文檔租賃合同費(fèi)用結(jié)算及支付方式調(diào)整3篇
- 職業(yè)健身教練課程設(shè)計(jì)
- 二零二五年度農(nóng)業(yè)產(chǎn)業(yè)化公司入股合同書3篇
- 2024年物業(yè)協(xié)議終止補(bǔ)充協(xié)議書版B版
- 液壓轉(zhuǎn)向器的課程設(shè)計(jì)
- 礦山電工課程設(shè)計(jì)
- 幼兒?jiǎn)文_站立課程設(shè)計(jì)
- 2024年規(guī)范化勞務(wù)外包協(xié)議樣本版B版
- 2024涉外貨物買賣合同涉及的稅收和保險(xiǎn)問題
- 二零二五年度黨建與企業(yè)職工心理健康合作協(xié)議3篇
- DZ/T 0462.5-2023 礦產(chǎn)資源“三率”指標(biāo)要求 第5部分:金、銀、鈮、鉭、鋰、鋯、鍶、稀土、鍺(正式版)
- 大學(xué)生餐飲職業(yè)生涯規(guī)劃書
- 生殖與衰老課件
- 2024年建筑繼續(xù)教育-安全員繼續(xù)教育筆試參考題庫(kù)含答案
- 經(jīng)典藍(lán)色商務(wù)商業(yè)模板
- 中國(guó)專利獎(jiǎng)申報(bào)要點(diǎn)
- 郵政代理保險(xiǎn)營(yíng)銷方案
- 讓思維活躍起來(lái)《偵探思維觀察力訓(xùn)練營(yíng)》 心理健康七年級(jí)全一冊(cè)
- 高壓氧工作總結(jié)
- 梁平法制圖規(guī)則及鋼筋翻樣講解
- 譯林版八年級(jí)上冊(cè)初二英語(yǔ)全冊(cè)課時(shí)練(一練一練)
評(píng)論
0/150
提交評(píng)論