Oracle數據庫的優(yōu)化 Oracle數據庫的優(yōu)化

Oracle數據庫的優(yōu)化

  • 期刊名字:科技信息
  • 文件大?。?77kb
  • 論文作者:陳麗紅,陳麗紅,林常君,林常君
  • 作者單位:延邊廣播電視大學(xué),交通銀行延邊分行
  • 更新時(shí)間:2020-09-30
  • 下載次數:次
論文簡(jiǎn)介

2010年第 35期SCTENCE & TECENOLOGY INFORMATIONOIT論壇O科技信息Oracle數據庫的優(yōu)化陳麗紅'林常君2(1.延邊廣播電視大學(xué)吉林延邊133000;2.交通銀行延邊分行 吉林延邊133000)[摘要]本文提出了一種優(yōu)化Oncle數據庫的方法。Oracle中SQL語(yǔ)句的執行過(guò)程可分為解析(Parse). 執行(Execute) 和提取蛄果(ech)三步,此方法就是通過(guò)對SQL語(yǔ)句在Oncle敏據庫中優(yōu)化執行的三個(gè)過(guò)程來(lái)提高Oncle數據庫的性能。[關(guān)鍵詞]敏鋸庫;掃描;多表聯(lián)結;于查詢(xún)1如何優(yōu)化 Parse6)對索引主列的行有限定條件.但條件使用1like操作以及值以‘%'開(kāi)始或者值是一個(gè)賦值變量。例如,在所有下列情況下都不會(huì )使.1 SQLI.語(yǔ)句的Parse處理步驟:用索引:1)計算語(yǔ)句值Where City like '%aonin%'2)共享池中有無(wú)與此語(yǔ)句值相同的語(yǔ)旬?Where City like :Ciny _Bind. Variable3)共享池中有與此語(yǔ)句字符完全匹配的語(yǔ)句?如果找小、索引列無(wú)選擇性.基于開(kāi)銷(xiāo)的優(yōu)化器可能決定使用全4)準備嬰運行的SQL語(yǔ)句表掃5)為新語(yǔ)句在共享池中創(chuàng )建空間2.2只使用選擇性索引6)將語(yǔ)句存放在共享池中索引的選擇性是指索引列里不同債的數a與表中記錄數的比。7)修改共享池圖,標明語(yǔ)句的值和在共享池中的位置如果表有1000個(gè)記錄.表索引列有950個(gè)不同值,那么這個(gè)索引的選8)執行準備好的SQL語(yǔ)句最理想的是,語(yǔ)句只執行1.2.3和8步來(lái)進(jìn)行處理。不經(jīng)過(guò)2.3揮性就是950/1000或者0.95。最好的叮能性選擇是1.0。依據非空值步來(lái)測試被傳給Oracle 的語(yǔ)句要使用1-8步進(jìn)行處理。只經(jīng)過(guò)1.2.列的唯一索引,通常其選擇性為1.0。如果使用善于開(kāi)銷(xiāo)的城優(yōu)化,優(yōu)化器不應該使用選擇性不好的素3.8的SQL.語(yǔ)何要比經(jīng)過(guò)1-8步的語(yǔ)句更為有效。1.2在共享池中重用 SQL語(yǔ)句索引的選擇性是指索引列里不同值的數月與表中記錄數的比。如當SOL.語(yǔ)句被傳遵給Onele處理時(shí),其秘訣是重復使用已經(jīng)在果表有 1000個(gè)記錄,表索引列有950↑個(gè)不同值,那么這個(gè)索引的選擇共享池中的語(yǔ)句.而不是讓Oracle在接受語(yǔ)句時(shí)去準備新的語(yǔ)句。前性就是950/1000或者0.95。最好的可能性選擇是1.0依據非空值列面表明,如果Oracle接受了一-個(gè)與共享池中的語(yǔ)句相一致的語(yǔ)句,就的唯一-索引,通常其選擇性為1.0。重用共享池中的語(yǔ)句。Oracle 提供在數據庫中存儲代碼的能力。當應用系統開(kāi)始運行2.3管理多表聯(lián)結Oracle 提供了3個(gè)聯(lián)結操作:NESTED LOOPS、HASH JOIN和時(shí),從數據庫中讀取代碼(可用PI/SQL語(yǔ)句編制)并像其它語(yǔ)句那樣MERGE JOIN。MERGE JOIN是-組操作.在所有行被處理完之前,它傳遞到共享池中去處理。從數據庫中取出的代碼是編譯過(guò)的并駐留在不返任何記求給下-操作。NESTED L00PS和HASH JOIN是行操作,共享池中。因此會(huì )很快將第-批記錄返回給下一個(gè)操作。2如何優(yōu)化Execute和Fetch在每個(gè)聯(lián)結選項里。必須執行- 些步驟以獲取最好的聯(lián)結性能。如果沒(méi)有適當地優(yōu)化聯(lián)結操作.耶么聯(lián)結所而的時(shí)間也許隨莉表的增2.1避免無(wú)計劃的 全表打描全表打描連續從表讀取所有數據,而不管數據是否與查詢(xún)有關(guān)。長(cháng)而呈指數級地增長(cháng)。避免不必要的全表掃描有兩個(gè)充足理由:1會(huì )表掃描設有選擇性。2通2.4管理包含 視圖的sQI.語(yǔ)句如果查詢(xún)包含視圖,優(yōu)化器有兩種執行套詢(xún)的方法:首先解決視過(guò)全表打描讀取的數據很快從SCA的緩沖區移走(如果正在掃描的圖然后執行查面.或者把視圖文本集 成到查詢(xún)里去。如果首先執行視表不是“高速存儲"的表)在基于規則優(yōu)化的情況下.如果下列任何條件在SGA語(yǔ)句出現,圖,那么首先完成全部的結果集.然后用其余的查詢(xún)條件做過(guò)濾器。首先解決梲圖公導致在淘性能卜降的問(wèn)題.這取決f所步及表的就要對一個(gè)表進(jìn)行全教掃描。相對大小。如果視圍敏集成到查詢(xún)電.耶么查削的條件也可以應用于1)該表無(wú)索引視圖里,并H可以使用-個(gè)小一些的結果集。然而在-些情況下,也許2)對返回的行無(wú)任何限定條件(如無(wú)Where語(yǔ)句)可以通過(guò)視圖分離維操作提咼查潤性能。3)對敷據表與任何索引主列相對應的行無(wú)限定條件。例如,在.如果一個(gè)視圖包含集合的操作( 如Croup by .SUM .COUNT或者City. Statee zZip 列上創(chuàng )建Y三列復合索引,那么僅對Sule列有限定條DISTINCT). 那么視圖不能被集成到代詢(xún)里去。不使用組或者沒(méi)有集件的查詢(xún)不能使用這個(gè)索引,因為Stuale不是索引的主列。合操作的視圖的SQL語(yǔ)法可以被集成倒大的查詢(xún)里去。4)對索引主列的行有限定條件,但條件或者是NULL或者是不25 優(yōu)化子查詢(xún)用等。例如,City列上存在索引. 在所有下列情況下都不會(huì )使用索引。當使用自查瀏時(shí).也許會(huì )碰到幾個(gè)獨特的問(wèn)題。涉及子查淘的查Where city is null詢(xún)潛在問(wèn)題如下:Where eity is not mull1)也許在執行完查詢(xún)的剩余部分前執行子查淘(與執行分組功能5)對索引主列的行有限定條件.但條件在表達式里使用。例如,Where city! = jilin'的視圖相似)。2)f奩詢(xún)也許要求特定的提示,但這些提示不直接與調用該子查如果在City列上索引,那么限定條件詢(xún)的查詢(xún)有關(guān)。Where Gity = *jlin'3)可以作為單個(gè)查詢(xún)執行的子查詢(xún)也許被代替寫(xiě)成幾個(gè)不同的可以使用索引。然而.如果殿定條件是子查詢(xún)。Where CPPER(City)= lianing'中國煤化工子句時(shí),不能在最有效的那么不會(huì )使用City列上的索引,因為Cirty 列在UPPER函數里。如果將City列與文本字符串聯(lián)結在一起.也不會(huì )使用索引。例如,如果限定條件是YHC N M H G有兩種完成責詢(xún)的方法:Where CityI'x' like ijlin%'首先完成子查詢(xún).然后完成查詢(xún)(“視圖的方法").或者將子查瀏巢成那么不會(huì )使用City列上的紫引。到在詢(xún)里去(“聯(lián)結”的方法)。如果首先解決子查詢(xún),廓么整個(gè)f查詢(xún).104科技信息OIT論壇OSCTENCE & TECHNOLOGY INFORMATION2010年第35期的結果集將階先被計算,并幾用查詢(xún)條件的剩余部分做過(guò)速器。如UNION ALI. 操作允許承復。UNION ALI.不要求SORT UNIQUE沒(méi)有使用子查詢(xún)去進(jìn)行存在檢盤(pán).那么“聯(lián)結" )i法將通常嬰比“視圖”操作,從而節省r開(kāi)銷(xiāo)。UNION ALI.是-.個(gè)行操作,所以當其變?yōu)橛辛Ψㄍ瓿傻煤?。效就返回給用戶(hù)。面UNION包括SORT UNIQUE集操怍.在全都記錄(2)如何組合子充詢(xún)一個(gè)代削叮以包含多個(gè)子殼詢(xún).使用的子在詢(xún)越多.集成或者電當UNION AIL操作產(chǎn)生巨大的結果集時(shí),不需要任何排序便返寫(xiě)它們到大的聯(lián)結電就越閑難。既然有多個(gè)子查詢(xún)使巢成困難.就應回記域 給應用的事實(shí)意昧著(zhù)第-行檢索的響應時(shí)間史快,并且在許多該盡叮能地組介多個(gè)千食詢(xún)。情況下,可以不用臨時(shí)段完成操作。(3)怎樣進(jìn)行存在椅在在有此悄況下,UNION ALL和UNION不返回同樣的結果。如果有時(shí)子在詢(xún)不返同行(記錄),但可以進(jìn)行數據正確性檢查。在相在應用環(huán)境中 ,結果集并不包含任何重復的記錄.則叮以把UNION轉關(guān)技里的i記水或者存在或者不存在的邏輯檢代稱(chēng)為存在檢查??梢該Q成UNIO使用exits和notexists子句提商仔在檢查的性能。2.8避免在SQL.里使用PU/SQL功能調用2.6 管理對非常|i大的表的訪(fǎng)問(wèn)對于增加PI/SQL的使用,許多用戶(hù)試用利PI/SQI.功能的優(yōu)勢產(chǎn)隨符長(cháng)增長(cháng)到比SCA的數據塊高速緩沖區存儲器的空間顯著(zhù)大生可敢復使用的代碼。其中一個(gè)強迫歌復使用PI/SQI.功能的方法是時(shí),需要從另-些角度優(yōu)化對這個(gè)表的在詢(xún)。在SQL語(yǔ)句里使用。例如,可以創(chuàng )建一個(gè)將國際貨幣轉換為US$的咱1)4表和它的索引小的時(shí)候.在SGA電可以有高度的數據共享。數。這個(gè)麗數稱(chēng)為US$。示例如下:多用戶(hù)讀長(cháng)或索引范閡fI描叮以反復使用同一個(gè)塊。隨柞長(cháng)的增長(cháng),seleet transaction. type, US$ (amount, curreney)表的求引也在增長(cháng)。隨料長(cháng)和它的索引增長(cháng)到比SGA電提供的空間from intermational _transaction where US $ (amount, currency) >大時(shí).范閡打描需要的下一行將在SGA里找到的時(shí)能性變小,數據庫1000;的命中率將減小。最后.每一個(gè)邏輯詼將嬰求-.個(gè)單獨的物理讀。對使執行前面的sQI,誦句沒(méi)有所期望的那樣好。在測試時(shí),它的性能用非常大的長(cháng)的優(yōu)化方法荷眼于特別的索引技術(shù)和有關(guān)索引的選擇。大約比下面得出相間結果的SQL.語(yǔ)句慢大約幾+倍。2)管理敷據接近.在訪(fǎng)問(wèn)非常大的衣期間.如果傾向于繼續使用seleet tranaction, Jype,amount*exchange. rate US$索引.那么應該關(guān)注數據接近.即邏輯相關(guān)記錄的物理關(guān)系。為了使數from exchange. rate er, intermational. transaction it據最大限度地接近.應該連續往表里插人記錄。記承按通常在表的范圍打描甲使用的列排序。響應時(shí)間不同的原因是混合PUJSQI.和SQL時(shí),Oracle使用的機3)避免沒(méi)A們幫助的索引掃描.如果要對大表使用索引掃描,那么制不同。在SQI.在詢(xún)里嵌入PLSQL功能時(shí).在執行時(shí).Oracle將調用不能假定家打|描物比侖&掃描執行得更好。不緊跟表訪(fǎng)阿的索引唯分成兩部分:用帶有賦值變鼂的SQL語(yǔ)旬代替功能調用以及對每一一打描或范例打I描執行得比較好,俱緊跟逋過(guò)RowID)的長(cháng)訪(fǎng)問(wèn)的索個(gè) 晌數調用的無(wú)名PLISQL塊。引范閡打|描也許執行得老。隨著(zhù)長(cháng)增長(cháng)到比數據塊高速緩沖存儲器大select transaction _ype, :al from intemational. _ransaction where :al得多,最終,索引打描和會(huì )衣I描間的平衡點(diǎn)打破。> 1000表是很有用的。創(chuàng )建-個(gè)復介索引,它包括所有在在湖期間通常選擇BECIN的列。在代瀏期間.查詢(xún)要求的所有數據叮以通過(guò)索引訪(fǎng)問(wèn)提供,不需al = US$ (amount, :currency);要任何表訪(fǎng)問(wèn)。END5)并行選項.可以把一個(gè)數據庫任務(wù).比如Selet語(yǔ)句.分為多個(gè)對在intemational. _transaction 表中的每一行,將執行在前面示例單元的T.作.由多個(gè)Orarle進(jìn)幫同時(shí)執行。這種能夠允許數據庫的單里顯示的無(wú)名塊兩次。無(wú)名塊調用導斂代削響應時(shí)間的劇增。應該避個(gè)t詢(xún)話(huà)動(dòng)由多個(gè)協(xié)調的進(jìn)段透明地進(jìn)行處理的能力.稱(chēng)為并行查詢(xún)免在SQL語(yǔ)句電使用PI/SQL功能調用。(選項(PQ0)。并行選項調用多個(gè)進(jìn)程來(lái)利用空閑的系統資源.以減少完成任務(wù)所霜要的時(shí)間。并行選項并不堿少處理過(guò)程所要求的資源敷[參考文獻]量,而是把處理的任務(wù)分散給多個(gè)CPU。[1]競正科,王新英Orcle8.X For Windows NT實(shí)用教程[M]北京:清華大學(xué)出版2.7使 用UNION AlJ.而不是UNIONt,1999最常用的集操作處UNION操作.UNION操作使多個(gè)記錄集聯(lián)結(2}薩師置,王建 數據庫系燒氟論M.北京:高等教育出版社2000成為單個(gè)集。UNION 操作的數學(xué)定義是返網(wǎng)記項的單個(gè)集并且沒(méi)有[3 lEyal Aoff.Kervin Lloney Noorali Snawl.Oracle8性能優(yōu)化和管理手冊[M],乍逸彼, E華駒.馬賽紅,曲寧,等,譯北京:電子工業(yè)出版社2000.1.重復的行.所以在合并結梨集甲.Oracle只返回不同的記束。[4 ]Peter Koleike,Dr.Poul Dorsey Orecle Deigner 俯息系統開(kāi)發(fā)[M].劉曉霞,孫登當UNION操作用作SOL. 語(yǔ)句的一部分時(shí),唯-性要求強迫峰,自京,間藏等洋北京,機械上業(yè)出)19.8Oracle 移走敢復的記錄。Oracle 的移走承復記項的功能是SORTUNIQUE操作,它與使用DISTINCT子句時(shí)執行的操作類(lèi)似。[責任縭:王靜](上接第77頁(yè))戶(hù)信息表記錄進(jìn)行增加.以及進(jìn)行客戶(hù)信息的修改和后 利用sQL.語(yǔ)句來(lái)套詢(xún)借的狀態(tài).生成臨時(shí)表.把臨時(shí)表做為數據原刪除,食瀏操作。進(jìn)行顯示出來(lái)。4)會(huì )員詐冊 與交費用添加.首先標志婚加客戶(hù)信息狀態(tài)的會(huì )員,4總結對其人員進(jìn)行借的跟蹤,對其交費用和普通人員交費用進(jìn)行區別對待。作為計算機應用的-部分,使用計算機對卉像租賃信息進(jìn)行管首先是公員汴冊問(wèn)題.有管理員來(lái)注冊該用戶(hù)信息,設計代碼,代理. 具有F I.管理所尤法比擬的優(yōu)點(diǎn)。例如:檢家迅連、查找方便、可靠碼說(shuō)明,定義敷組變比t仔放了段內容,利用SQL插入語(yǔ)創(chuàng )插人客戶(hù)信性高 任儲量大、都命長(cháng).等優(yōu)點(diǎn)。這此優(yōu)點(diǎn)能夠級大地提高效事,也是總長(cháng),給出提小,清空原有所輸入們息??茖W(xué)化、正規化管理的歌要條件。5)齊像的在找j租借功能.該功能主要是新增加租借信息以及對信息代拽。6)音像 的歸還與費用計算功能.該功能反映借閱的信息,以及借([1)譚橋強中國煤化工清華大學(xué)出版社。的狀態(tài)[2]張彬集:MHCNMHG電出版社.7)對音箱借的信息進(jìn)行在詢(xún)打印以及定期打印音像的信息,了解[3]劉淳.Vi借的狀態(tài)。糧據客戶(hù)編號,可以在海出所有借的信息,接收客戶(hù)編號參敷,然[貴任嫡輯:昌一然]105

論文截圖
版權:如無(wú)特殊注明,文章轉載自網(wǎng)絡(luò ),侵權請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習使用,務(wù)必24小時(shí)內刪除。
欧美AAAAAA级午夜福利_国产福利写真片视频在线_91香蕉国产观看免费人人_莉莉精品国产免费手机影院