Oracle優(yōu)化常用概念_第1頁
Oracle優(yōu)化常用概念_第2頁
Oracle優(yōu)化常用概念_第3頁
Oracle優(yōu)化常用概念_第4頁
Oracle優(yōu)化常用概念_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Oracle優(yōu)化常用概念解析常見概念CBO/RBO表連接方式執(zhí)行計(jì)劃統(tǒng)計(jì)信息和柱狀圖索引分區(qū)表AWR表掃描方式hintCBO/RBO什么是CBO/RBO,工作原理是什么應(yīng)該使用哪種模式如何查看是哪種模式如何修改優(yōu)化器模式什么是CBO/RBO,工作原理是什么CBO:cost-basedoptimizer,基于成本的優(yōu)化器RBO:rule-basedoptimizer,基于規(guī)則的優(yōu)化器CBO需要使用統(tǒng)計(jì)信息,據(jù)此計(jì)算最佳的執(zhí)行計(jì)劃;而RBO根據(jù)oracle設(shè)定好的規(guī)則生成執(zhí)行計(jì)劃。由于不能窺視到表中數(shù)據(jù),RBO往往不能得到合理的執(zhí)行計(jì)劃應(yīng)該使用哪種模式Oracle10g的CBO已經(jīng)很成熟,推薦使用。Oracle公司也將使用CBO代替RBO,而且RBO對開發(fā)人員的要求比較高,因此,CBO是不二選擇。如何查看是哪種模式showparameteroptimizer_modeoptimizer_mode的取值包括:rule:RBOchoose:有統(tǒng)計(jì)信息時(shí)是CBO,否則是RBO,但使用use_hash,all_rows等提示時(shí)都是CBOall_rows,first_rows:CBO如何修改優(yōu)化器模式altersystemsetoptimizer_mode=all_rowsscope=both;scope的值:both、spfile、memory,默認(rèn)是both表連接方式有哪幾種連接方式每種方式的特點(diǎn)、工作原理有哪幾種連接方式hashjoinnestedloopmergejoin每種方式的特點(diǎn)、工作原理nestedloop:使用條件:任何連接優(yōu)點(diǎn):當(dāng)有高選擇性索引或進(jìn)行限制性搜索時(shí)效率比較高,能夠快速返回第一次的搜索結(jié)果缺點(diǎn):當(dāng)索引丟失或者查詢條件限制不夠時(shí),效率很低;當(dāng)表的紀(jì)錄數(shù)多時(shí),效率低。sortmerge:使用條件:主要用于不等價(jià)連接,但不包括<>;相關(guān)資源:內(nèi)存、臨時(shí)空間優(yōu)點(diǎn):當(dāng)缺乏索引或者索引條件模糊時(shí),排序合并連接比嵌套循環(huán)有效。缺點(diǎn):所有的表都需要排序。它為最優(yōu)化的吞吐量而設(shè)計(jì),并且在結(jié)果沒有全部找到前不返回?cái)?shù)據(jù)。hashjoin:使用條件:僅用于等價(jià)連接;相關(guān)資源:內(nèi)存、臨時(shí)空間優(yōu)點(diǎn):當(dāng)缺乏索引或者索引條件模糊時(shí),哈希連接連接比嵌套循環(huán)有效。通常比排序合并連接快。在數(shù)據(jù)倉庫環(huán)境下,如果表的紀(jì)錄數(shù)多,效率高。缺點(diǎn):為建立哈希表,需要大量內(nèi)存。第一次的結(jié)果返回較慢。執(zhí)行行計(jì)計(jì)劃劃什么么是是執(zhí)執(zhí)行行計(jì)計(jì)劃劃如何何生生成成執(zhí)執(zhí)行行計(jì)計(jì)劃劃如何何看看懂懂執(zhí)執(zhí)行行計(jì)計(jì)劃劃什么么是是執(zhí)執(zhí)行行計(jì)計(jì)劃劃Oracle執(zhí)執(zhí)行行每每一一條條SQL語語句句,,都都必必須須經(jīng)經(jīng)過過Oracle優(yōu)優(yōu)化化器器的的評評估估,,選選擇擇最最佳佳的的執(zhí)執(zhí)行行路路徑徑,,包包括括索索引引的的使使用用、、表表的的訪訪問問、、表表之之間間的的連連接接等等等等。。如何何生生成成執(zhí)執(zhí)行行計(jì)計(jì)劃劃Pl/sql中中按按F5,,最最簡簡單單快快捷捷的的方方式式ExplainplanSqltrace,,最最準(zhǔn)準(zhǔn)確確Sql/plusautotrace,,包包含含更更多多信信息息如何何看看懂懂執(zhí)執(zhí)行行計(jì)計(jì)劃劃沒有有捷捷徑徑,,多多看看執(zhí)執(zhí)行行計(jì)計(jì)劃劃,,網(wǎng)網(wǎng)上上查查一一下下具具體體含含義義計(jì)劃劃開開個(gè)個(gè)專專題題討討論論統(tǒng)計(jì)計(jì)信信息息和和柱柱狀狀圖圖為什什么么要要收收集集統(tǒng)統(tǒng)計(jì)計(jì)信信息息統(tǒng)計(jì)計(jì)信信息息包包括括哪哪些些內(nèi)內(nèi)容容如何何查查看看是是否否存存在在統(tǒng)統(tǒng)計(jì)計(jì)信信息息如何何收收集集統(tǒng)統(tǒng)計(jì)計(jì)信信息息什么么是是柱柱狀狀圖圖為什什么么要要做做柱柱狀狀圖圖如何何生生成成柱柱狀狀圖圖為什什么么要要收收集集統(tǒng)統(tǒng)計(jì)計(jì)信信息息cbo模模式式下下計(jì)計(jì)算算cost所所需需要要的的信信息息,,統(tǒng)統(tǒng)計(jì)計(jì)信信息息越越準(zhǔn)準(zhǔn)確確,,oracle生生成成的的執(zhí)執(zhí)行行計(jì)計(jì)劃劃越越高高效效,,所所以以要要定定期期收收集集統(tǒng)統(tǒng)計(jì)計(jì)信信息息統(tǒng)計(jì)計(jì)信信息息包包括括哪哪些些內(nèi)內(nèi)容容表::行行數(shù)數(shù)、、塊塊數(shù)數(shù)、、空空塊塊數(shù)數(shù)、、塊塊的的平平均均剩剩余余空空間間等等表的的列列::唯唯一一值值數(shù)數(shù)、、null值值數(shù)數(shù)等等索引引::級級數(shù)數(shù)、、葉葉子子塊塊數(shù)數(shù)、、唯唯一一值值數(shù)數(shù)等等如何何查查看看是是否否存存在在統(tǒng)統(tǒng)計(jì)計(jì)信信息息User_tab_statistics((user_tables也也存存在在相相應(yīng)應(yīng)列列))User_ind_statistics((user_indexes也也存存在在相相應(yīng)應(yīng)列列))User_tab_col_statistics如何何收收集集統(tǒng)統(tǒng)計(jì)計(jì)信信息息analyzetabletb_namecompute|estimatestatistics;該該方方式式用用于于向向后后兼兼容容execdbms_stats.gather_*oracle建建議議使使用用的的方方式式什么么是是柱柱狀狀圖圖Oracle的的柱柱狀狀圖圖和和web頁頁面面展展示示的的柱柱狀狀圖圖屬屬同同一一個(gè)個(gè)概概念念,,只只是是已已數(shù)數(shù)據(jù)據(jù)的的形形式式存存在在而而沒沒有有直直觀觀展展示示出出來來而而已已。。每每個(gè)個(gè)柱柱被被稱稱為為bucket((桶桶))。。柱柱狀狀圖圖包包含含了了列列上上的的數(shù)數(shù)據(jù)據(jù)分分布布,,大大致致可可理理解解為為列列上上每每個(gè)個(gè)值值的的記記錄錄數(shù)數(shù),,即即數(shù)數(shù)據(jù)據(jù)傾傾斜斜度度。。為什什么么要要做做柱柱狀狀圖圖Oracle在選擇索引引時(shí)會檢查索索引的效率從從而確定是否否使用索引,,而柱狀圖正正是提供了這這種信息。如如果不做柱狀狀圖,oracle就確確定不了索引引的效率,會會傾向于使用用索引,可能能反而不如做做全表掃描來來得快如何生成柱狀狀圖analyzetabletb_namecompute|estimatestatisticsforallindexedcolumns;針針對索引列列analyzetabletb_namecompute|estimatestatisticsforcolumnscol_namesize<n>;針針對某一一列analyzetabletb_namecompute|estimatestatisticsforallcolumns;針對表表所有列使用dbms_stats包提供的的過程,如::dbms_stats.gather_table_stats(ownname=>'',tabname=>'',method_opt=>'forallcolumns');索引創(chuàng)建索引的目目的索引為什么會會加快查詢有哪些類型的的索引索引的限制創(chuàng)建索引的目目的從根本來講就就是為了加快快查詢速度Oracle出于對效率率的考慮,某某些約束會關(guān)關(guān)聯(lián)到索引,,從而可以更更快的檢查約約束,主鍵約約束就是一個(gè)個(gè)典型的例子子。索引為什么會會加快查詢索引的結(jié)構(gòu)使使得搜索索引引的鍵值很快快。oracle索引的的結(jié)構(gòu)類似于于平衡二叉樹樹,但每個(gè)非非葉子節(jié)點(diǎn)存存儲了多個(gè)值值,降低了樹樹的高度。每個(gè)索引鍵都都存儲了索引引列和rowid,通過過rowid訪問表是最最快的方式。。Rowid相當(dāng)于指針針。如果取表中少少量數(shù)據(jù),先先索引搜索再再通過rowid訪問表表顯然代價(jià)比比全表掃描小小,但如果取取表中大量數(shù)數(shù)據(jù),索引搜搜索幾乎就成成了多余的一一步,因此,,全表掃描更更好,走索引引反而效率低低。這就是索索引的效率問問題,也是做做柱狀圖的目目的。有哪些類型的的索引唯一索引、非非唯一索引::關(guān)鍵字unique函數(shù)索引反轉(zhuǎn)索引:關(guān)關(guān)鍵字reverse用于平衡索引引樹,使之不不會朝一側(cè)傾傾斜位圖索引:關(guān)關(guān)鍵字bitmap列的基數(shù)比較較小時(shí)非常適適合,但dml操作的代代價(jià)很高,不不適合oltp系統(tǒng)索引的限制不等(<>、、!=、^=)、isnull操操作符對索引列使用用函數(shù)或者索索引列存在隱隱身轉(zhuǎn)換索引效率不高高,適合做全全表掃描錯(cuò)誤的統(tǒng)計(jì)信信息數(shù)據(jù)傾斜而未未做柱狀圖,,或使用了綁綁定變量而oracle未窺視到使用hint強(qiáng)制做fullscan以’%’開頭頭的like操作符并行查詢小表,oracle認(rèn)為為不需要走索索引分區(qū)表有哪些類型的的分區(qū)表索引的創(chuàng)建有哪些類型的的分區(qū)表rangehashlistcomplex索引的創(chuàng)建globalorlocal??建議使用local索索引AWR什么是awr如何生成awrAwr包含哪哪些內(nèi)容什么是awr全稱automaticworkloadrepository(自動工作作負(fù)荷存儲))。對于運(yùn)行行中的數(shù)據(jù)庫庫,oracle會定時(shí)時(shí)對運(yùn)行狀態(tài)態(tài)抓取快照,,包括內(nèi)存的的占用、磁盤盤的讀寫、語語句執(zhí)行情況況等信息。Awr保存了了時(shí)間最長的的快照信息,,默認(rèn)是7天天。與awr對應(yīng)的概念念還有addm和ash,是時(shí)間較較短的快照。。如何生成awr登陸到數(shù)據(jù)庫庫服務(wù)器,執(zhí)執(zhí)行腳本awrrptPl/sql和sql/plus中中也可以。獨(dú)獨(dú)家抓取腳本本,無須登陸陸服務(wù)器,使使用更方便,,每license10元,收費(fèi)費(fèi)公道,童叟叟無欺,歡迎迎訂購使用表掃描表掃描原理如何查看hwm如何降低hwm表掃描原理從水線(hwm)向下掃掃描hwm(hightwatermark):oracle使用用的塊的最大大高度,或者者說是使用到到的最大塊號號如何查看hwm查詢user_tables.blocks,,需要先對表表進(jìn)行分析其他一些左道道旁門的方法法如何降低hwmaltertabletb_nameshrinkspace;該方方法需要前提提altertabletb_nameenablerowmovement;altertabletb_namemove;該該方法需要要在move完后重建索索引alterindexind_namerebuild;truncatehint使用hint的兩種方式式有哪些hint使用hint的兩種方式式--+,需要要注意該方式式會注釋掉其其后同行的內(nèi)內(nèi)容/*+*/有哪些hintuse_nl、use_hash、、use_merge表表連接方式式leading表連接接順序parallel并行行查詢full、index全全表掃描、索索引掃描all_rows、first_rows、choose、rule優(yōu)化器模式式Append、noappend直直接路徑插入入,慎用語句慢怎么辦辦?檢查語句書寫寫是否規(guī)范、、業(yè)務(wù)邏輯是是否可調(diào)一句話,死盯盯執(zhí)行計(jì)劃,,語句慢一般般是走了錯(cuò)誤誤的執(zhí)行計(jì)劃劃。以下原因因都可能是罪罪魁禍?zhǔn)祝?、優(yōu)化器選選擇了RBO2、統(tǒng)計(jì)信息息缺失或錯(cuò)誤誤3、有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論