歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

SQL語句的執(zhí)行過程

  • 資源ID:242913037       資源大?。?span id="70hkb00" class="font-tahoma">65.50KB        全文頁數(shù):28頁
  • 資源格式: PPT        下載積分:30積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要30積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

SQL語句的執(zhí)行過程

,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,Oracle,數(shù)據(jù)庫內(nèi)部培訓(xùn)資料,*,SQL,語句的執(zhí)行過程,以及數(shù)據(jù)庫內(nèi)存結(jié)構(gòu),1, SQL語句的執(zhí)行過程 數(shù)據(jù)庫的內(nèi)存結(jié)構(gòu),2,DDL,(數(shù)據(jù)定義語言),DML,(數(shù)據(jù)操縱語言),SQL語句的類型,3,修改,Oracle,數(shù)據(jù)字典所執(zhí)行的語句。它們是創(chuàng)建表、增加用戶、刪除表中的列、創(chuàng)建觸發(fā)器等的語句,例如:,CREATE TABLE,、,CREATE USER,、,CREATE PACKAGE,、,ALTER TABLE,、,CREATE PROCEDURE,DDL,(數(shù)據(jù)定義語言),4,訪問和修改數(shù)據(jù)庫中數(shù)據(jù)所執(zhí)行的語句。這些語句包括SELECT、INSERT、MERGE、UPDATE和DELETE命令,DML,(數(shù)據(jù)操縱語言),5,Oracle,執(zhí)行一條語句從開始到結(jié)束經(jīng)過,4,個步驟:,分析,對提交的語句進(jìn)行語法和語義檢查,優(yōu)化,生成一個可在數(shù)據(jù)庫中用來執(zhí)行語句的最佳計劃,行資源生成,為會話取得最佳計劃和建立執(zhí)行計劃,語句執(zhí)行,完成實際執(zhí)行查詢的行資源生成步驟的輸出,語句執(zhí)行過程,6,語法分析,查詢是不是合法的語句,語義分析,如果是合法的語句,還需要檢查是否具有訪問權(quán)限、訪問的列是否在所訪問的表中、是否存在歧義,共享池檢查,如果是,DML,語句還需要進(jìn)行共享池檢查,此語句是否已經(jīng)被其他用戶分析過且,Oracle,可重用已經(jīng)執(zhí)行的工作,如果是就進(jìn)行軟分析,如果不是就進(jìn)行硬分析。,DDL,總是硬分析,從不重用,分析,7,共享池概念是,Oracle,體系結(jié)構(gòu)的一個關(guān)鍵成分。共享池是,Oracle,共享全局區(qū)(,SGA,)中的一塊內(nèi)存,其中庫高速緩存區(qū)存放以前執(zhí)行過的,SQL,語句、,PL/SQL,代碼,數(shù)據(jù)字典高速緩存區(qū)存放字典信息,硬分析,軟分析,共享池檢查,8,分析查詢,檢查語法,驗證語義,計算散列值,找到一個匹配,驗證存在一個與我們的查詢完全相同的查詢(引用相同的對象),確認(rèn)我們具有訪問所有引用對象的必須的權(quán)限,驗證語句在相同的環(huán)境中執(zhí)行,如果是軟分析就直接跳過下面的優(yōu)化和行資源生成這一重要步驟,硬分析和軟分析,9,所有,DML,語句第一次提交給,Oracle,時,在它們的生存期中至少要優(yōu)化一次。優(yōu)化發(fā)生在硬分析中。語句義上和語法上完全相同,且執(zhí)行環(huán)境也相同的語句的執(zhí)行可以利用以前硬分析的工作。在此情形下,對它們進(jìn)行軟分析。,硬分析包括查詢優(yōu)化步驟。這是一種費勁的、,CPU,密集型的處理過程,所花的時間可能比語句的實際執(zhí)行時間還要長。,查詢優(yōu)化工作是要找到可能是最好的執(zhí)行計劃,優(yōu)化和行資源生成,10,基于規(guī)則的優(yōu)化程序(,RBO,),這種優(yōu)化程序基于一組規(guī)則建立查詢計劃。它不考慮對象尺寸、列的基數(shù)、數(shù)據(jù)的分布、排序區(qū)尺寸以及其它因素。查詢優(yōu)化只能利用已經(jīng)編好的規(guī)則。,基于成本的優(yōu)化程序(,CBO,),這種優(yōu)化程序根據(jù)收集的實際訪問數(shù)據(jù)的統(tǒng)計信息對查詢進(jìn)行優(yōu)化。在確定最合適的計劃是,它將使用行數(shù)、數(shù)據(jù)集的尺寸以及許多其他信息。,CBO,將生成許多(或許數(shù)千)可能的查詢計劃(解決查詢的預(yù)備途徑),并給每個查詢計劃賦予一個數(shù)值成本。采用具有最低成本的查詢計劃,優(yōu)化程序模式,11,優(yōu)化之后就是行資源生成,行資源生成器是,Oracle,中的一個軟件,它接受優(yōu)化程序的輸出,將它格式化為實際的執(zhí)行計劃。,例如:在使用,SQL*PLUS,中的,AUTOTRACE,實用程序時,它打印查詢計劃,行資源生成,12,語句執(zhí)行的最后步驟是利用資源生成器的輸出實際執(zhí)行語句。它是,DML,執(zhí)行中唯一的強制性的步驟??梢蕴^分析、優(yōu)化和行資源生成步驟。反復(fù)執(zhí)行語句。因為這是目前為止最高效的方法,只要有可能,我們都希望建立符合“分析一次,執(zhí)行許多次”規(guī)則的應(yīng)用程序。,執(zhí)行,13,OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS,call count cpu elapsed disk query current rows,- - - - - - - -,Parse 12 0.04 0.12 0 2 0 0,Execute 12 0.02 0.04 0 268 29 23,Fetch 4856 0.86 0.81 0 7703 0 72673,- - - - - - - -,total 4880 0.93 0.98 0 7973 29 72696,count,:提供,OCI,過程的執(zhí)行次數(shù),CPU,: 提供執(zhí)行,CPU,所花的時間單位是秒,Elapsed,:提供了執(zhí)行時所花的時間。單位是秒。這個參數(shù)值等于用戶響應(yīng)時間,Disk,:提供緩存區(qū)從磁盤讀取的次數(shù),Query,:以一致性模式從緩存區(qū)獲得數(shù)據(jù)的次數(shù),Current,:以當(dāng)前模式從緩存區(qū)獲得數(shù)據(jù)的次數(shù),ROWs,: 返回調(diào)用或執(zhí)行調(diào)用時,處理的數(shù)據(jù)行的數(shù)量。,14,10:34:55 SQL> select * from dept;,Elapsed: 00:00:00.10,Execution Plan,-,Plan hash value: 3383998547,-,| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |,-,| 0 | SELECT STATEMENT | | 4 | 120 | 3 (0)| 00:00:01 |,| 1 | TABLE ACCESS FULL| DEPT | 4 | 120 | 3 (0)| 00:00:01 |,-,Note,-,- dynamic sampling used for this statement (level=2),Statistics,-,279 recursive calls,0 db block gets,58 consistent gets,8 physical reads,0 redo size,1630 bytes sent via SQL*Net to client,524 bytes received via SQL*Net from client,2 SQL*Net roundtrips to/from client,0 sorts (memory),0 sorts (disk),4 rows processed,15,10:35:00 SQL> /,Elapsed: 00:00:00.02,Execution Plan,-,Plan hash value: 3383998547,-,| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |,-,| 0 | SELECT STATEMENT | | 4 | 120 | 3 (0)| 00:00:01 |,| 1 | TABLE ACCESS FULL| DEPT | 4 | 120 | 3 (0)| 00:00:01 |,-,Note,-,- dynamic sampling used for this statement (level=2),Statistics,-,0 recursive calls,0 db block gets,8 consistent gets,0 physical reads,0 redo size,802 bytes sent via SQL*Net to client,524 bytes received via SQL*Net from client,2 SQL*Net roundtrips to/from client,0 sorts (memory),0 sorts (disk),4 rows processed,16,11:31:43 SQL> l,1* select * from dept order by 1,Elapsed: 00:00:00.03,Execution Plan,-,Plan hash value: 120787663,-,| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |,-,| 0 | SELECT STATEMENT | | 4 | 120 | 4 (25)| 00:00:01 |,| 1 | SORT ORDER BY | | 4 | 120 | 4 (25)| 00:00:01 |,| 2 | TABLE ACCESS FULL| DEPT | 4 | 120 | 3 (0)| 00:00:01 |,-,Note,-,- dynamic sampling used for this statement (level=2),Statistics,-,0 recursive calls,0 db block gets,7 consistent gets,0 physical reads,0 redo size,794 bytes sent via SQL*Net to client,524 bytes received via SQL*Net from client,2 SQL*Net roundtrips to/from client,1 sorts (memory),0 sorts (disk),4 rows processed,17,alter system flush shared_pool;,alter system flush buffer_cache;,Elapsed: 00:00:00.20,Execution Plan,-,Plan hash value: 120787663,-,| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |,-,| 0 | SELECT STATEMENT | | 4 | 120 | 4 (25)| 00:00:01 |,| 1 | SORT ORDER BY | | 4 | 120 | 4 (25)| 00:00:01 |,| 2 | TABLE ACCESS FULL| DEPT | 4 | 120 | 3 (0)| 00:00:01 |,-,Note,-,- dynamic sampling used for this statement (level=2),Statistics,-,1195 recursive calls,0 db block gets,203 consistent gets,32 physical reads,0 redo size,794 bytes sent via SQL*Net to client,524 bytes received via SQL*Net from client,2 SQL*Net roundtrips to/from client,13 sorts (memory),0 sorts (disk),4 rows processed,18,數(shù)據(jù)庫緩沖區(qū)高速緩存,共享池,重做日志緩沖區(qū),Java池(Java Pool),大池(Large Pool),流池(Stream Pool),數(shù)據(jù)庫內(nèi)存結(jié)構(gòu),19,SGA,共享池,Java,池,流池,庫高速緩存,數(shù)據(jù)字典緩存,DB CACHE SIZE,Log Buffer,大池,20,用于存儲,最近執(zhí)行的,SQL,語句,最近使用的數(shù)據(jù)定義,包括的內(nèi)存結(jié)構(gòu),庫高速緩存,數(shù)據(jù)字典高速緩存,共享池,21,庫高速緩存包括以下兩個結(jié)構(gòu):,共享,SQL,:共享,SQL,為針對數(shù)據(jù)庫運行的,SQL,語句存儲并共享執(zhí)行計劃和 語法分析樹。下次運行同一,SQL,語句時,這個語句就能利用共享,SQL,提供的語法分析信息來加快其執(zhí)行速度。要確保,SQL,語句隨時可以使用共享,SQL,區(qū),文本、方案和綁定變量必須完全相同。,共享,PL/SQL,:共享,PL/SQL,區(qū)存儲并共享最近執(zhí)行的,PL/SQL,語句。經(jīng)過語法分析和編譯的程序單元和過程(函數(shù)、程序包和觸發(fā)器)都存儲在這個區(qū)中,庫高速緩存,22,數(shù)據(jù)庫中最近使用的定義的集合,包括與數(shù)據(jù)庫文件、表、索引、列、用戶、權(quán)限和其它數(shù)據(jù)庫對象相關(guān)的信息,在語法分析階段,服務(wù)器進(jìn)程會在數(shù)據(jù)字典中查找用于解析對象名和驗證訪問的信息,將數(shù)據(jù)字典信息高速緩存到內(nèi)存中,可縮短查詢和,DML,的響應(yīng)時間,數(shù)據(jù)字典高速緩存,23,存儲已從數(shù)據(jù)文件中檢索到的數(shù)據(jù)塊的副本,能夠大幅提高獲取和更新數(shù)據(jù)時的性能,通過,LRU,算法管理,處理查詢時,,Oracle,服務(wù)器進(jìn)程在數(shù)據(jù)庫緩沖區(qū)高速緩存中查找任何所需的塊。如果未在數(shù)據(jù)庫緩沖區(qū)高速緩存中找到這個塊,服務(wù)器進(jìn)程就從數(shù)據(jù)文件讀取這個塊,并在數(shù)據(jù)庫緩沖區(qū)高速緩存中放置一個副本。由于對同一個塊的后續(xù)請求可以在內(nèi)存中找到這個塊,因此這些請求可能不需要進(jìn)行物理讀取。,數(shù)據(jù)庫緩沖區(qū)高速緩存,24,Oracle 服務(wù)器使用LRU (最近最少使用算法)算法來釋放近期未被訪的緩沖區(qū),以便在數(shù)據(jù)庫緩沖區(qū)高速緩存中為新塊騰出空間,25,記錄對數(shù)據(jù)庫數(shù)據(jù)塊所做的全部更改,主要用于恢復(fù),其中記錄的更改稱作重做條目,重做條目包含用于重新構(gòu)造或重做更改的信息,重做日志緩沖區(qū)是一個循環(huán)緩沖區(qū),它包含對數(shù)據(jù)文件塊所做的各種更改。此信息存儲在重做條目中。重做條目包含將數(shù)據(jù)恢復(fù)到使用,INSERT,、,UPDATE,、,DELETE,、,CREATE,、,ALTER,、或,DROP,操作進(jìn)行更改前的狀態(tài)所需要的信息。,重做日志緩沖區(qū),26,Statistics,-,25 recursive calls,0 db block gets,2962024 consistent gets,45465 physical reads,0 redo size,3972 bytes sent via SQL*Net to client,531 bytes received via SQL*Net from client,3 SQL*Net roundtrips to/from client,0 sorts (memory),0 sorts (disk),22 rows processed,27,謝謝大家,28,

注意事項

本文(SQL語句的執(zhí)行過程)為本站會員(dja****22)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!