国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Oracle數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的性能優(yōu)化

2017-12-29 10:55韋德昌遼寧錦州渤海大學(xué)信息科學(xué)與技術(shù)學(xué)院
數(shù)碼世界 2017年4期
關(guān)鍵詞:數(shù)據(jù)庫(kù)系統(tǒng)緩沖區(qū)磁盤

韋德昌 遼寧錦州渤海大學(xué)信息科學(xué)與技術(shù)學(xué)院

Oracle數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的性能優(yōu)化

韋德昌 遼寧錦州渤海大學(xué)信息科學(xué)與技術(shù)學(xué)院

Oracle是被人們熟知的數(shù)據(jù)庫(kù),隨著數(shù)據(jù)庫(kù)的用戶占用率不斷增多的現(xiàn)象,數(shù)據(jù)庫(kù)的整體性能出現(xiàn)滑坡。本文提出了關(guān)于Oracle數(shù)據(jù)庫(kù)性能優(yōu)化問(wèn)題以及改善方案,直接影響系統(tǒng)性能和數(shù)據(jù)庫(kù)運(yùn)行效率,通過(guò)研究和分析哪些的因素能夠影響Oracle數(shù)據(jù)庫(kù)的性能優(yōu)化,確定一種數(shù)據(jù)優(yōu)化方案為本文的研究目標(biāo),其中包括:內(nèi)存優(yōu)化技術(shù)、表分區(qū)技術(shù)、I/O優(yōu)化技術(shù)、索引技術(shù)和SQL優(yōu)化技術(shù)等,期望通過(guò)本文的方法使得數(shù)據(jù)庫(kù)操作性能達(dá)到最優(yōu)化,經(jīng)過(guò)本文研究表明:優(yōu)化的系統(tǒng)性能和系統(tǒng)運(yùn)行效率都得以改善。

Oracle 數(shù)據(jù)庫(kù) 應(yīng)用系統(tǒng) 性能優(yōu)化 內(nèi)存分配

1 引言

當(dāng)前,Oracle數(shù)據(jù)庫(kù)被廣泛地應(yīng)用到各種領(lǐng)域中,如政府機(jī)關(guān)、公安警務(wù)、電信業(yè)務(wù)、金融領(lǐng)域、能源等多個(gè)職能部門,并已逐漸深入到企業(yè)數(shù)據(jù)庫(kù)管理平臺(tái),但是隨著Oracle逐漸深入擴(kuò)大,Oracle是用戶使用量最多的管理系統(tǒng),對(duì)于選擇大型數(shù)據(jù)庫(kù)作為軟件開發(fā)的基礎(chǔ)平臺(tái)而言,是軟件運(yùn)行的基礎(chǔ)部分。同時(shí),系統(tǒng)性能也是數(shù)據(jù)庫(kù)評(píng)價(jià)的重要參數(shù)。但是,在實(shí)際實(shí)踐中,隨著用戶量不斷增多和訪問(wèn)量急劇上升,系統(tǒng)中需要處理的數(shù)據(jù)不斷增多,系統(tǒng)的性能也隨之下降,有必要對(duì)其性能進(jìn)行優(yōu)化,因此,在滿足系統(tǒng)需求條件之下,數(shù)據(jù)庫(kù)性能優(yōu)化變得極其重要,數(shù)據(jù)庫(kù)性能處于最佳和系統(tǒng)開銷最小,以達(dá)到系統(tǒng)運(yùn)行的最優(yōu)的狀態(tài)。

2 系統(tǒng)性能優(yōu)化指標(biāo)

2.1 如何提高系統(tǒng)吞吐量

數(shù)據(jù)庫(kù)吞吐量按照其在單位時(shí)間內(nèi)(單位:秒)所執(zhí)行的SQL語(yǔ)句總共條數(shù),其公示表示為:吞吐量=系統(tǒng)執(zhí)行事務(wù)語(yǔ)句條數(shù)/單位時(shí)間(秒),通常用TPS表示吞吐量,其最終要實(shí)現(xiàn)性能優(yōu)化問(wèn)題,提高吞吐量是對(duì)數(shù)據(jù)庫(kù)系統(tǒng)性能加以提升。

2.2 如何縮短響應(yīng)時(shí)間

數(shù)據(jù)庫(kù)系統(tǒng)的響應(yīng)時(shí)間需要提交到后臺(tái),提交SQL事務(wù)后返回查詢結(jié)果共計(jì)響應(yīng)時(shí)間,為了提升系統(tǒng)的整體性能指標(biāo),通過(guò)減小系統(tǒng)用戶和請(qǐng)求時(shí)間與系統(tǒng)響應(yīng)時(shí)間之差獲取的時(shí)間戳,來(lái)實(shí)現(xiàn)縮短用戶等待時(shí)間的目的,通過(guò)縮短系統(tǒng)響應(yīng)時(shí)間,既可實(shí)現(xiàn)減少用戶請(qǐng)求時(shí)間,并提升系統(tǒng)性能和資源使用比。

2.3 如何優(yōu)化磁盤I/O

Oracle將數(shù)據(jù)儲(chǔ)放磁盤或者內(nèi)存數(shù)據(jù)塊中,如果想要往數(shù)據(jù)庫(kù)中讀寫數(shù)據(jù)操作時(shí),必須有I/O操作,合理規(guī)劃磁盤的讀寫數(shù)據(jù)操作,基于高速緩存技術(shù)實(shí)現(xiàn)吞吐量的提高,用戶請(qǐng)求縮短系統(tǒng)響應(yīng)時(shí)間,有效利用系統(tǒng)物理內(nèi)存空間,避免過(guò)多的使用磁盤I/O讀寫操作。

2.4 如何提高數(shù)據(jù)庫(kù)命中率

Oracle數(shù)據(jù)庫(kù)用戶進(jìn)程所使用的全部數(shù)據(jù)盡量都在高速緩沖區(qū)中獲取,因?yàn)獒槍?duì)高速緩沖區(qū)的讀寫速度快。用戶獲取數(shù)據(jù)目標(biāo)能否在緩沖區(qū)中得到滿足,并縮短了數(shù)據(jù)庫(kù)的響應(yīng)時(shí)間,提高在高速緩沖區(qū)數(shù)據(jù)讀寫命中率,以這種方式衡量數(shù)據(jù)庫(kù)系統(tǒng)性能的一種方式。

2.5 如何實(shí)現(xiàn)合理使用內(nèi)存

在數(shù)據(jù)并發(fā)量要求較大的情況下,如果Oracle數(shù)據(jù)庫(kù)內(nèi)存空間不夠則影響數(shù)據(jù)庫(kù)處理效率降低,延遲用戶請(qǐng)求的響應(yīng)時(shí)間,如果內(nèi)存空間合理使用,多數(shù)情況下可以得到最大效率和占用最小的系統(tǒng)內(nèi)存空間,以這兩個(gè)評(píng)價(jià)參數(shù)作為合理使用內(nèi)存的判斷,通過(guò)合理使用系統(tǒng)的內(nèi)存空間,方可大大提高數(shù)據(jù)庫(kù)的使用性能。

2.6 如何減小磁盤排序

當(dāng)用戶請(qǐng)求提交的某一條SQL事務(wù)時(shí),此事務(wù)中包括了聚合函數(shù)或者數(shù)據(jù)排序時(shí),有可能數(shù)據(jù)排序在內(nèi)存中實(shí)現(xiàn),或許在物理磁盤上實(shí)現(xiàn)數(shù)據(jù)排序的功能。但是,由于數(shù)據(jù)庫(kù)讀寫操作在物理磁盤上進(jìn)行,再加上磁盤自身結(jié)構(gòu)存在的問(wèn)題,其實(shí)現(xiàn)讀寫操作的速度遠(yuǎn)遠(yuǎn)低于位于內(nèi)存中的數(shù)據(jù),因此,數(shù)據(jù)庫(kù)的優(yōu)化原則避免在物理磁盤上實(shí)現(xiàn)數(shù)據(jù)排序操作。

3 影響數(shù)據(jù)庫(kù)性能因素

影響數(shù)據(jù)性能的原因有很多種因素,例如:操作系統(tǒng)性能、CPU參數(shù)設(shè)置、內(nèi)存分配不當(dāng)、Oracle數(shù)據(jù)庫(kù)配置問(wèn)題、數(shù)據(jù)讀寫的I/O操作沖突、數(shù)據(jù)在網(wǎng)絡(luò)傳輸速度偏低以及SQL語(yǔ)句出現(xiàn)邏輯錯(cuò)誤等,以上因素都會(huì)影響數(shù)據(jù)庫(kù)的整體性能。

①操作系統(tǒng)性能。Oracle的服務(wù)器在某種程度上所依賴于運(yùn)行在操作系統(tǒng)上的服務(wù)器,操作系統(tǒng)參數(shù)配置不當(dāng)會(huì)影響數(shù)據(jù)的性能。

②CPU參數(shù)設(shè)置。CPU是數(shù)據(jù)庫(kù)運(yùn)行的重要硬件,CPU資源被事務(wù)占用過(guò)高的比例,會(huì)導(dǎo)致其他事務(wù)暫停運(yùn)行,而使其他事務(wù)的響應(yīng)時(shí)間延遲,當(dāng)系統(tǒng)空閑時(shí),CPU占用率已經(jīng)達(dá)到80%,表明Oracle服務(wù)器參數(shù)設(shè)置不當(dāng)。

③I/O數(shù)據(jù)讀寫沖突操作。由于磁盤操作只運(yùn)行一個(gè)進(jìn)程讀寫操作,當(dāng)幾個(gè)進(jìn)程同時(shí)進(jìn)行讀寫磁盤數(shù)據(jù)時(shí),數(shù)據(jù)庫(kù)會(huì)針對(duì)進(jìn)程進(jìn)行互斥操作防止數(shù)據(jù)讀寫沖突。

④Oracle參數(shù)設(shè)置。后臺(tái)進(jìn)程與實(shí)例之間都位于系統(tǒng)的內(nèi)存中,正確設(shè)置Oracle參數(shù)會(huì)優(yōu)化數(shù)據(jù)庫(kù)系統(tǒng)性能。

⑤內(nèi)存分配不當(dāng)。當(dāng)操作系統(tǒng)為了擴(kuò)大虛擬內(nèi)存而進(jìn)行重新分配內(nèi)存,它實(shí)際上利用了磁盤空間。當(dāng)實(shí)際內(nèi)存不能滿足軟件需求時(shí),操作系統(tǒng)不斷的從磁盤空間與內(nèi)存進(jìn)行頁(yè)面的替換操作,優(yōu)化內(nèi)存分配不當(dāng)操作的主要目是為了減少內(nèi)存交換次數(shù),減少分頁(yè),盡量在高速緩存中進(jìn)行數(shù)據(jù)讀取操作等。

⑥數(shù)據(jù)在網(wǎng)絡(luò)傳輸速度偏低。網(wǎng)絡(luò)在某種程度上影響數(shù)據(jù)庫(kù)系統(tǒng)的整體性能,如果網(wǎng)速慢則導(dǎo)致網(wǎng)絡(luò)負(fù)荷量增加,從而降低數(shù)據(jù)的傳輸速率和系統(tǒng)的吞吐量,延長(zhǎng)用戶請(qǐng)求等待的響應(yīng)時(shí)間。

⑦SQL語(yǔ)句出現(xiàn)邏輯錯(cuò)誤。存在大量遞歸的SQL事務(wù),如果全表掃描所需要的等待時(shí)間較長(zhǎng),數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)置和約束條件設(shè)置不合理,不合理的設(shè)置I/O數(shù)據(jù)讀取操作,使用非標(biāo)準(zhǔn)SQL語(yǔ)句參數(shù),使用執(zhí)行效率低的SQL事務(wù)實(shí)現(xiàn)數(shù)據(jù)的讀取操作。

4 數(shù)據(jù)庫(kù)性能優(yōu)化方案

4.1 優(yōu)化軟件系統(tǒng)

數(shù)據(jù)庫(kù)的性能體現(xiàn)在軟件系統(tǒng)性能上,很多問(wèn)題由于軟件系統(tǒng)某些缺陷導(dǎo)致數(shù)據(jù)庫(kù)的死鎖、運(yùn)行效率降低等。企業(yè)的信息化系統(tǒng)為了加快軟件系統(tǒng)的開發(fā)進(jìn)程,對(duì)軟件系統(tǒng)開發(fā)和測(cè)試設(shè)計(jì)上不合理,系統(tǒng)測(cè)試不全面、不合理、不精確。例如說(shuō),在進(jìn)行大規(guī)模系統(tǒng)測(cè)試時(shí)使用簡(jiǎn)單的測(cè)試方案,系統(tǒng)在運(yùn)行一個(gè)時(shí)期之后出現(xiàn)性能下降的現(xiàn)象,這表明軟件的整體性能存在問(wèn)題的體現(xiàn)。測(cè)試時(shí)必須要結(jié)合多用戶、高并發(fā)量的測(cè)試過(guò)程,并充分分析測(cè)試結(jié)論。一個(gè)軟件系統(tǒng)的整體性能的優(yōu)劣完全取決于Oracle數(shù)據(jù)庫(kù)的性能。

4.2 優(yōu)化數(shù)據(jù)庫(kù)的SQL語(yǔ)句

SQL語(yǔ)句的優(yōu)化是提高數(shù)據(jù)庫(kù)性能的重要方面。優(yōu)化的SQL語(yǔ)句不僅降低I/O數(shù)據(jù)讀取操作次數(shù),而且重要的是降低占用網(wǎng)絡(luò)傳輸帶寬。因此,高可靠的數(shù)據(jù)庫(kù)系統(tǒng)不單單是完成簡(jiǎn)單的數(shù)據(jù)存取操作,更重要的是完成已經(jīng)優(yōu)化的SQL事務(wù),從根本上提高數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行效率。常見(jiàn)的SQL優(yōu)化語(yǔ)句包括下面幾個(gè):

為多個(gè)數(shù)據(jù)表建立索引結(jié)構(gòu)、盡量避免語(yǔ)句操作在字符串查詢結(jié)構(gòu)中包含多個(gè)模糊字母,并盡量使用讀操作模擬加鎖操作等。

數(shù)據(jù)庫(kù)系統(tǒng)的全部操作都是通過(guò)執(zhí)行SQL事務(wù)來(lái)完成的,其中不乏有簡(jiǎn)單的增刪改查操作。因此,在很大程度上,Oracle數(shù)據(jù)庫(kù)的整體性能好壞決定SQL事務(wù)的運(yùn)行效率,為了盡量提高SQL事務(wù)的運(yùn)行效率,另外,編寫SQL語(yǔ)句應(yīng)該關(guān)注下面的內(nèi)容:

①建立數(shù)據(jù)表分區(qū),減少全表掃描操作,占用系統(tǒng)內(nèi)存,實(shí)現(xiàn)數(shù)據(jù)分區(qū)查詢操作。

②對(duì)于常用數(shù)據(jù)表實(shí)現(xiàn)查詢操作,建立表索引以減少執(zhí)行的SQL事務(wù)數(shù)量。

③常用的多個(gè)數(shù)據(jù)表存儲(chǔ)到統(tǒng)一的數(shù)據(jù)塊中。

“以我觀物,萬(wàn)物皆著我色彩”,這一段歌詞中豐富的典故使用加上恰如其分的修辭格使人們瞬間產(chǎn)生在“名落孫山”的秀才眼中世界原來(lái)是如此悲涼。

④在數(shù)據(jù)查詢時(shí),針對(duì)需要多表連接查詢的數(shù)據(jù)操作需要有充分表連接條件。

優(yōu)化Oracle數(shù)據(jù)庫(kù)系統(tǒng)性能需要通過(guò)實(shí)踐積累經(jīng)驗(yàn)、總結(jié)的改進(jìn)過(guò)程,必須要熟悉影響數(shù)據(jù)庫(kù)整體性能的主要因素,針對(duì)影響因素而采取不同方案加以優(yōu)化系統(tǒng)性能,同時(shí)也要考慮到基于先進(jìn)優(yōu)化技術(shù)對(duì)數(shù)據(jù)庫(kù)系統(tǒng)加以優(yōu)化操作,使得系統(tǒng)的整體性能達(dá)到最優(yōu)的狀態(tài)。

4.3 優(yōu)化數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)存參數(shù)

SGA表示數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)存的全局參數(shù)設(shè)置區(qū)。它能夠被服務(wù)器和聯(lián)網(wǎng)用戶所共享,其中:共享數(shù)據(jù)池、高速緩沖區(qū),日志訪問(wèn)區(qū)。共享數(shù)據(jù)池是存放SQL事務(wù)和數(shù)據(jù)字典的空間。高速緩沖區(qū)的緩存空間越大,表示可容內(nèi)存數(shù)據(jù)多,磁盤I/O操作次數(shù)減少,數(shù)據(jù)庫(kù)性能就得到極大優(yōu)化;日志訪問(wèn)區(qū)如果設(shè)置緩存區(qū)過(guò)小,會(huì)導(dǎo)致存儲(chǔ)空間不足的情況,降低數(shù)據(jù)庫(kù)系統(tǒng)的性能。

4.4 優(yōu)化數(shù)據(jù)庫(kù)緩沖區(qū)性能

為減少訪問(wèn)磁盤I/O操作帶來(lái)的開銷,應(yīng)優(yōu)化高速緩沖區(qū)的空間,使得進(jìn)程盡量在高速緩沖區(qū)上獲取數(shù)據(jù),盡量減少用戶請(qǐng)求時(shí)發(fā)生等待時(shí)間。當(dāng)加大BufferCache的存儲(chǔ)空間時(shí),可以設(shè)置DB_ CACHE_SIZE參數(shù)變大,使用多個(gè)數(shù)據(jù)緩沖池時(shí),緩存池中數(shù)據(jù)盡量保存在其中,通過(guò)使用多個(gè)數(shù)據(jù)緩沖池的目的是為了提高數(shù)據(jù)在高速緩存區(qū)上的命中率。

4.5 優(yōu)化磁盤I/O

數(shù)據(jù)庫(kù)要實(shí)現(xiàn)將最終數(shù)據(jù)存儲(chǔ)到物理磁盤上。因此,避免不了發(fā)生磁盤I/O讀寫操作,數(shù)據(jù)庫(kù)性能也因此受到影響,此時(shí)已經(jīng)消耗Oracle數(shù)據(jù)庫(kù)最多的操作時(shí)間,為了避免對(duì)系統(tǒng)性能帶來(lái)的影響,監(jiān)控磁盤I/O讀寫操作是非常關(guān)鍵的步驟。影響磁盤I/O讀寫操作包括:磁盤讀寫進(jìn)程死鎖現(xiàn)象、I/O操作次數(shù)過(guò)多等。

4.6 磁盤碎片整理

磁盤數(shù)據(jù)碎片的產(chǎn)生由于刪除數(shù)據(jù)導(dǎo)致的,因?yàn)橄到y(tǒng)刪除數(shù)據(jù)操作出現(xiàn),系統(tǒng)數(shù)據(jù)存儲(chǔ)區(qū)域不斷發(fā)生變化,磁盤數(shù)據(jù)碎片分別為:表級(jí)碎片和索引級(jí)碎片。

①表級(jí)碎片由于設(shè)置合適的數(shù)據(jù)塊數(shù)量,由于數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)是間斷的,在創(chuàng)建數(shù)據(jù)庫(kù)表結(jié)構(gòu)時(shí),根據(jù)用戶需求數(shù)據(jù)記錄大小來(lái)選擇相應(yīng)的數(shù)據(jù)規(guī)模,提高系統(tǒng)中數(shù)據(jù)塊利用效率。

②索引級(jí)碎片是因?yàn)椴樵儽淼乃饕Y(jié)構(gòu)過(guò)于頻繁而致,經(jīng)過(guò)B-TREE數(shù)據(jù)結(jié)構(gòu)和葉子的數(shù)據(jù)排序而導(dǎo)致,可以減少查詢索引結(jié)構(gòu)的數(shù)據(jù),尤其是系統(tǒng)中變化頻率較少數(shù)據(jù)塊,目的是降低索引碎片的形成。

5 本文結(jié)論與未來(lái)研究方向

軟件系統(tǒng)工程,需要工程師認(rèn)真設(shè)計(jì)系統(tǒng)優(yōu)化問(wèn)題,對(duì)數(shù)據(jù)庫(kù)性能進(jìn)行優(yōu)化操作。Oracle數(shù)據(jù)庫(kù)性能優(yōu)化設(shè)計(jì)與優(yōu)化階段,需要在數(shù)據(jù)庫(kù)運(yùn)行時(shí)不斷優(yōu)化系統(tǒng)的性能,為優(yōu)化一個(gè)高效的數(shù)據(jù)庫(kù)系統(tǒng)打下基礎(chǔ)。

[1]蓋國(guó)強(qiáng).循序漸進(jìn)Oracle數(shù)據(jù)庫(kù)管理、優(yōu)化與備份恢復(fù)[M].北京:人民郵電出版社,2007

[2]趙夢(mèng)勤,李秀蘭.ORACLE數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的優(yōu)化策略[J].計(jì)算機(jī)工程與應(yīng)用.2003(27):217-218

猜你喜歡
數(shù)據(jù)庫(kù)系統(tǒng)緩沖區(qū)磁盤
它的好 它的壞 詳解動(dòng)態(tài)磁盤
基于Oracle數(shù)據(jù)庫(kù)系統(tǒng)的備份和恢復(fù)技術(shù)
創(chuàng)建虛擬機(jī)磁盤方式的選擇
解決Windows磁盤簽名沖突
Oracle數(shù)據(jù)庫(kù)系統(tǒng)的性能優(yōu)化研究
串行連續(xù)生產(chǎn)線的可用度與緩沖庫(kù)存控制研究*
計(jì)算機(jī)數(shù)據(jù)庫(kù)系統(tǒng)在企業(yè)管理中的應(yīng)用
基于ARC的閃存數(shù)據(jù)庫(kù)緩沖區(qū)算法①
Windows系統(tǒng)下動(dòng)態(tài)磁盤卷的分析與研究
數(shù)據(jù)庫(kù)系統(tǒng)在計(jì)算機(jī)體系結(jié)構(gòu)中的應(yīng)用