精品人妻无码一区二区三区软件 ,麻豆亚洲AV成人无码久久精品,成人欧美一区二区三区视频,免费av毛片不卡无码

您現(xiàn)在的位置是:首頁計算機應用論文

計算機論文數(shù)據(jù)庫技術(shù)方向論文范文

發(fā)布時間: 1

  據(jù)統(tǒng)計數(shù)據(jù)庫應用系統(tǒng)的性能問題50%的情況下都是由于設(shè)計問題引起的。軟件設(shè)計師在設(shè)計軟件和數(shù)據(jù)庫結(jié)構(gòu)時,未必能完全知道將來用戶使用系統(tǒng)處理業(yè)務的各種復雜情況。這就造成在軟件系統(tǒng)運行初始階段只能發(fā)現(xiàn)個別的性能問題,而其他的性能問題只能等到系統(tǒng)運行一段時間后才能暴露出來。針對這些問題,我們提出數(shù)據(jù)庫應用系統(tǒng)性能設(shè)計優(yōu)化策略,以提高數(shù)據(jù)應用子系統(tǒng)的性能。

  摘要:Oracle數(shù)據(jù)庫作為目前適用性最好的關(guān)系數(shù)據(jù)庫引擎之一,能夠支持各種業(yè)務形式、處理各種復雜事務,得到極為廣泛的應用。

  關(guān)鍵詞:數(shù)據(jù)庫性能優(yōu)化,逆規(guī)范化設(shè)計,優(yōu)化策略

  1對數(shù)據(jù)庫服務器內(nèi)存分配的調(diào)整

  由于對服務器內(nèi)存參數(shù)的調(diào)整對oracle的性能影響顯著,它成為Oracle數(shù)據(jù)庫性能調(diào)優(yōu)的首選對象。服務器內(nèi)存參數(shù)的調(diào)整主要是對數(shù)據(jù)庫系統(tǒng)全局區(qū)的調(diào)整,系統(tǒng)全局區(qū)包括共享池、數(shù)據(jù)緩沖區(qū)、日志緩沖區(qū)。其中最主要的是對數(shù)據(jù)緩沖區(qū)和共享池的參數(shù)調(diào)整。

  數(shù)據(jù)庫緩沖區(qū)的作用主要是將從磁盤中讀取的數(shù)據(jù)塊存放在內(nèi)存緩存中,從這個意義上說數(shù)據(jù)庫緩沖區(qū)越大,存放的共享數(shù)據(jù)就越多,減少了對磁盤數(shù)據(jù)的物理讀操作,也就提高了系統(tǒng)的響應速度。

  2Sql優(yōu)化

 。1)在基于規(guī)則的優(yōu)化器中,Oracle對from子句中的表名是按照從右到左的順序進行解析的,即:From子句中排在最后的表會被首先處理。我們把這張表稱做驅(qū)動表。當from字句中包含多個標的情況下,oracle是通過排序合并的方式連接這些表的,為了提高oracle的執(zhí)行效率,應當選擇包含記錄條數(shù)少的表作為驅(qū)動表,即放在from子句的最后。當from子句中有3張以上的表進行連接查詢時,需要將連接其他表的交叉表作為驅(qū)動表。

  (2)在oracle語句中,where子句的執(zhí)行順序是自下而上的對語句進行解析的。為了提高sql語句的執(zhí)行效率,應該將能過濾掉大量數(shù)據(jù)的條件寫在where子句的最后。

 。3)在selcect語句中使用*雖然對編程人員簡單方便,oracle會自動列出所有列名,但oracle解析*時則是通過查詢數(shù)據(jù)字典來完成對*的轉(zhuǎn)換的,這樣耗費了更多的時間用來查詢數(shù)據(jù)字典,轉(zhuǎn)換,必然降低執(zhí)行效率,因此在selcect語句中應當直接列出所有的列名。

 。4)用where子句代替having子句,在where子句中排除不需要的記錄,這樣的執(zhí)行效率將遠遠高于執(zhí)行完成之后用having子句對記錄進行篩選。

  總體來說,Oracle數(shù)據(jù)庫的性能優(yōu)化涉及的方面很廣,是一個系統(tǒng)工程,需要在系統(tǒng)設(shè)計運行的過程中,不斷運用以上提到的各個方面,對Oracle數(shù)據(jù)庫系統(tǒng)進行優(yōu)化,以確保數(shù)據(jù)庫的使用效率。數(shù)據(jù)庫的性能變差,往往不是一個方面的問題,而是各種問題相互結(jié)合導致的,因此,需要對各種因素綜合分析,對各種優(yōu)化手段綜合應用,才能做到將數(shù)據(jù)庫的性能維持在一個比較好的水平。

  3軟件開發(fā)模式優(yōu)化策略

  3.1避免訪問回滾段

  如果查詢數(shù)據(jù)庫時,要訪問的數(shù)據(jù)正被另外用戶修改,數(shù)據(jù)庫為了維護讀一致性,需要訪問會滾段來讀取查詢語句執(zhí)行時刻的數(shù)據(jù)值。如果應用程序需要經(jīng)常讀取正在被其它用戶修改的數(shù)據(jù),數(shù)據(jù)庫系統(tǒng)為了得到一個數(shù)據(jù),不得不多次訪問磁盤。數(shù)據(jù)庫管理員可通過配置回滾段來減少查詢時“snapshottooold”錯誤的發(fā)生。解決這個問題的根本方法還是需要重新修改應用程序設(shè)計,合理對事務進行劃分。

  3.2表的分區(qū)和并行技術(shù)

  如果必須要在數(shù)據(jù)庫運行特別耗時的操作。應盡量地把這樣的操作分解,嚴格限制操作所涉及的記錄數(shù),并設(shè)法使操作并行,充分地提高執(zhí)行效率。

 。1)使用分區(qū)。分區(qū)技術(shù)有兩個潛在的好處:提高查詢性能和提高數(shù)據(jù)庫可用性。數(shù)據(jù)庫查詢時,優(yōu)化器知道那些分區(qū)包含查詢所要的數(shù)據(jù)。而其它分區(qū)數(shù)據(jù)將不會被讀取,從而查詢?nèi)蝿諏⒏焱瓿。許多管理工作可在只一個分區(qū)上進行,而不影響其它分區(qū)的數(shù)據(jù)。例如可以選擇只刪除一個表分區(qū)中的數(shù)據(jù)。可對表分區(qū)進行再分割,把一個表分區(qū)遷移到不同的表空間上?芍粚σ粋表分區(qū)進行分析統(tǒng)計。表分區(qū)的這些特性。

  (2)使用并行。Oracle數(shù)據(jù)庫中幾乎所有的操作都支持并行特性,包括查詢、插入、和數(shù)據(jù)加載。并行選項可以使多個處理器同時處理一條命令,在創(chuàng)建庫數(shù)據(jù)庫對象時可以設(shè)定并行參數(shù),也可在查詢語句中重新設(shè)。

  4軟件測試優(yōu)化策略

  (1)用大量的數(shù)據(jù)進行測試。系統(tǒng)使用一段時間后,數(shù)據(jù)庫的性能會發(fā)生變化。例如oracle數(shù)據(jù)庫一個表的pctfree和pctused參數(shù)設(shè)置可能會使數(shù)據(jù)塊只有一半的空間被利用或使數(shù)據(jù)庫記錄鏈接(chained)。上面的情形都會引起數(shù)據(jù)庫性能問題,且只有在應用程序使用了一段時間后才能被發(fā)現(xiàn)。還有一個例子就是B_樹索引,隨著數(shù)據(jù)的增加,索引會在中心點分裂開來,索引樹次將增加新的層次,這將會給數(shù)據(jù)添加造成負面影響。可以把B-樹看成樹,樹中的某些節(jié)點被存放在RAM中,某些則不是。通常來說。根節(jié)點會被存放在RAM中,葉節(jié)點則不是。事實上,離根越遠的節(jié)點越不可能被存放在RAM中。搜索數(shù)據(jù)時(正如通過索引訪問數(shù)據(jù)),對磁盤二級存儲的一次訪問至少要花費幾個毫秒,所以一個數(shù)據(jù)結(jié)構(gòu)的性能,高度依賴于從根到葉的路徑上平均節(jié)點個數(shù)[6]:這個數(shù)目在B一樹中叫做層次數(shù)。這也只有索引分裂后,才會看出影響。應用程序正常工作了一兩周的時間,數(shù)據(jù)規(guī)模達到一個臨界值后,突然性能下降,不能滿足業(yè)務需要了。

  (2)足夠多的用戶并發(fā)測試。只有一個測試用戶大多數(shù)情況下不能反映軟件真實使用情況下的負載情況。我們必須測試在多個并發(fā)用戶情況下是否會引起死鎖(deadlock)以及性能下降等問題。例如兩個軟件模塊以同樣地方式向一個表中插入記錄,并查詢該表的數(shù)據(jù)。如果這兩個模塊被同時使用,這就會引起數(shù)據(jù)不一致的問題。只有經(jīng)過多個用戶的同時操作軟件的測試,這樣的問題才可能被發(fā)現(xiàn)。

  5結(jié)語

  數(shù)據(jù)庫應用系統(tǒng)的性能優(yōu)化遠不是按照廠家所列的有關(guān)指南通過短短的幾步就可以達到的。要想獲得最大的優(yōu)化效果,既需要具有廣泛而深人的數(shù)據(jù)庫原理和系統(tǒng)實踐知識,又要有扎實的應用程序設(shè)計能力,同時要充分熟悉操作系統(tǒng)和有關(guān)的軟硬件環(huán)境。筆者在實際工作中利用這些策略參與了數(shù)個數(shù)據(jù)庫應用系統(tǒng)設(shè)計,這些系統(tǒng)都表現(xiàn)出了良好的運行性能。

  參考文獻

  [1]GajaKrishnaVaidyanatha.Oracle性能優(yōu)化技術(shù)內(nèi)幕.機械工業(yè)出版社,2002,5:284.

  [2]李愛武.Oracle數(shù)據(jù)庫系統(tǒng)原理.北京郵電大學出版社,2007-3-1:210.


轉(zhuǎn)載請注明來自:http://www.jinnzone.com/jisuanjiyingyonglw/30862.html