自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle數(shù)據(jù)庫(kù)系統(tǒng)調(diào)優(yōu)方法

數(shù)據(jù)庫(kù) Oracle
Oracle數(shù)據(jù)庫(kù)是甲骨文公司的一款關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。到目前仍在數(shù)據(jù)庫(kù)市場(chǎng)上占有主要份額。當(dāng)然Oracle數(shù)據(jù)庫(kù)的調(diào)優(yōu)是保證Oracle數(shù)據(jù)庫(kù)正常工作的必要工作,那么如何實(shí)現(xiàn)Oracle數(shù)據(jù)庫(kù)的系統(tǒng)調(diào)優(yōu)呢?

Oracle 數(shù)據(jù)庫(kù)廣泛應(yīng)用在社會(huì)的各個(gè)領(lǐng)域,特別是在Client/Server模式的應(yīng)用,但是應(yīng)用開(kāi)發(fā)者往往碰到整個(gè)系統(tǒng)的性能隨著數(shù)據(jù)量的增大顯著下降的問(wèn)題,為了解決這個(gè)問(wèn)題,Oracle數(shù)據(jù)庫(kù)的系統(tǒng)調(diào)優(yōu)工作就必須得到實(shí)現(xiàn),Oracle數(shù)據(jù)庫(kù)的系統(tǒng)調(diào)優(yōu)能夠很好的確保Oracle數(shù)據(jù)庫(kù)在正常的工作狀態(tài)下工作,從以下幾個(gè)方面:數(shù)據(jù)庫(kù)服務(wù)器、網(wǎng)絡(luò)I/O、應(yīng)用程序等對(duì)整個(gè)系統(tǒng)加以調(diào)整,充分發(fā)揮Oracle的效能,提高整個(gè)系統(tǒng)的性能。

1 調(diào)整數(shù)據(jù)庫(kù)服務(wù)器的性能

 

Oracle數(shù)據(jù)庫(kù)服務(wù)器是整個(gè)系統(tǒng)的核心,它的性能高低直接影響整個(gè)系統(tǒng)的性能,為了調(diào)整Oracle數(shù)據(jù)庫(kù)服務(wù)器的性能,主要從以下幾個(gè)方面考慮:

 

1.1 調(diào)整

 

操作系統(tǒng)以適合Oracle數(shù)據(jù)庫(kù)服務(wù)器運(yùn)行

 

Oracle數(shù)據(jù)庫(kù)服務(wù)器很大程度上依賴(lài)于運(yùn)行服務(wù)器的操作系統(tǒng),如果操作系統(tǒng)不能提供***性能,那么無(wú)論如何調(diào)整,Oracle數(shù)據(jù)庫(kù)服務(wù)器也無(wú)法發(fā)揮其應(yīng)有的性能。

 

1.1.1 為Oracle數(shù)據(jù)庫(kù)服務(wù)器規(guī)劃系統(tǒng)資源

 

據(jù)已有計(jì)算機(jī)可用資源, 規(guī)劃分配給Oracle服務(wù)器資源原則是:盡可能使Oracle服務(wù)器使用資源***化,特別在Client/Server中盡量讓服務(wù)器上所有資源都來(lái)運(yùn)行Oracle服務(wù)。

 

1.1.2 調(diào)整計(jì)算機(jī)系統(tǒng)中的內(nèi)存配置

 

多數(shù)操作系統(tǒng)都用虛存來(lái)模擬計(jì)算機(jī)上更大的內(nèi)存,它實(shí)際上是硬盤(pán)上的一定的磁盤(pán)空間。當(dāng)實(shí)際的內(nèi)存空間不能滿(mǎn)足應(yīng)用軟件的要求時(shí),操作系統(tǒng)就將用這部分的磁盤(pán)空間對(duì)內(nèi)存中的信息進(jìn)行頁(yè)面替換,這將引起大量的磁盤(pán)I/O操作,使整個(gè)服務(wù)器的性能下降。為了避免過(guò)多地使用虛存,應(yīng)加大計(jì)算機(jī)的內(nèi)存。

 

1.1.3 為Oracle數(shù)據(jù)庫(kù)服務(wù)器設(shè)置操作系統(tǒng)進(jìn)程優(yōu)先級(jí)

 

不要在操作系統(tǒng)中調(diào)整Oracle進(jìn)程的優(yōu)先級(jí),因?yàn)樵贠racle數(shù)據(jù)庫(kù)系統(tǒng)中,所有的后臺(tái)和前臺(tái)數(shù)據(jù)庫(kù)服務(wù)器進(jìn)程執(zhí)行的是同等重要的工作,需要同等的優(yōu)先級(jí)。所以在安裝時(shí),讓所有的數(shù)據(jù)庫(kù)服務(wù)器進(jìn)程都使用缺省的優(yōu)先級(jí)運(yùn)行。

 

1.2 調(diào)整內(nèi)存分配

 

Oracle數(shù)據(jù)庫(kù)服務(wù)器保留3個(gè)基本的內(nèi)存高速緩存,分別對(duì)應(yīng)3種不同類(lèi)型的數(shù)據(jù):庫(kù)高速緩存,字典高速緩存和緩沖區(qū)高速緩存。庫(kù)高速緩存和字典高速緩存一起構(gòu)成共享池,共享池再加上緩沖區(qū)高速緩存便構(gòu)成了系統(tǒng)全程區(qū)(SGA)。SGA是對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行快速訪問(wèn)的一個(gè)系統(tǒng)全程區(qū),若SGA本身需要頻繁地進(jìn)行釋放、分配,則不能達(dá)到快速訪問(wèn)數(shù)據(jù)的目的,因此應(yīng)把SGA放在主存中,不要放在虛擬內(nèi)存中。內(nèi)存的調(diào)整主要是指調(diào)整組成SGA的內(nèi)存結(jié)構(gòu)的大小來(lái)提高系統(tǒng)性能,由于Oracle數(shù)據(jù)庫(kù)服務(wù)器的內(nèi)存結(jié)構(gòu)需求與應(yīng)用密切相關(guān),所以?xún)?nèi)存結(jié)構(gòu)的調(diào)整應(yīng)在磁盤(pán)I/O調(diào)整之前進(jìn)行。

 

1.2.1 庫(kù)緩沖區(qū)的調(diào)整

 

庫(kù)緩沖區(qū)中包含私用和共享SQL和PL/SQL區(qū),通過(guò)比較庫(kù)緩沖區(qū)的命中率決定它的大小。要調(diào)整庫(kù)緩沖區(qū),必須首先了解該庫(kù)緩沖區(qū)的活動(dòng)情況,庫(kù)緩沖區(qū)的活動(dòng)統(tǒng)計(jì)信息保留在動(dòng)態(tài)性能表v$librarycache數(shù)據(jù)字典中,可通過(guò)查詢(xún)?cè)摫韥?lái)了解其活動(dòng)情況,以決定如何調(diào)整。

 

1.2.2 數(shù)據(jù)字典緩沖區(qū)的調(diào)整

 

數(shù)據(jù)字典緩沖區(qū)包含了有關(guān)數(shù)據(jù)庫(kù)的結(jié)構(gòu)、用戶(hù)、實(shí)體信息。數(shù)據(jù)字典的命中率,對(duì)系統(tǒng)性能影響極大。數(shù)據(jù)字典緩沖區(qū)的使用情況記錄在動(dòng)態(tài)性能表v$librarycache中,可通過(guò)查詢(xún)?cè)摫韥?lái)了解其活動(dòng)情況,以決定如何調(diào)整。

 

1.2.3 緩沖區(qū)高速緩存的調(diào)整

 

用戶(hù)進(jìn)程所存取的所有數(shù)據(jù)都是經(jīng)過(guò)緩沖區(qū)高速緩存來(lái)存取,所以該部分的命中率,對(duì)性能至關(guān)重要。緩沖區(qū)高速緩存的使用情況記錄在動(dòng)態(tài)性能表v$sysstat中,可通過(guò)查詢(xún)?cè)摫韥?lái)了解其活動(dòng)情況,以決定如何調(diào)整。

 

2 調(diào)整 Client/Server 模式下的網(wǎng)絡(luò) I/O

 

Client/Server環(huán)境中的應(yīng)用處理是分布在客戶(hù)應(yīng)用程序和數(shù)據(jù)庫(kù)服務(wù)程序之間的。在 Client/Server環(huán)境中Client與Server之間的網(wǎng)絡(luò)I/O是整個(gè)系統(tǒng)性能提高的瓶頸,一個(gè)客戶(hù)應(yīng)用程序引起的網(wǎng)絡(luò)I/O越少,應(yīng)用及整個(gè)系統(tǒng)的性能越好。減少網(wǎng)絡(luò)I/O的最重要的一條原則:將應(yīng)用邏輯集中在數(shù)據(jù)庫(kù)服務(wù)器中。

 

2.1 使用Oracle數(shù)據(jù)庫(kù)的完整約束性

當(dāng)為應(yīng)用建表時(shí),應(yīng)當(dāng)為一些有特殊要求的數(shù)據(jù)加上適當(dāng)?shù)耐暾约s束,這樣就能實(shí)現(xiàn)由數(shù)據(jù)庫(kù)本身而不是應(yīng)用程序來(lái)約束數(shù)據(jù)符合一定的條件。數(shù)據(jù)庫(kù)服務(wù)器端的完整約束的執(zhí)行操作是在比SQL語(yǔ)句級(jí)別更低的系統(tǒng)機(jī)制上優(yōu)化,它與客戶(hù)端無(wú)關(guān),只在服務(wù)器中運(yùn)行,不需在Client 端和Server端之間傳遞SQL語(yǔ)句,有效地減輕網(wǎng)絡(luò)I/O負(fù)擔(dān)。

 

2.2 使用數(shù)據(jù)庫(kù)觸發(fā)器

 

完整約束性只能實(shí)現(xiàn)一些較簡(jiǎn)單的數(shù)據(jù)約束條件,對(duì)一些較復(fù)雜的事物處理規(guī)則就無(wú)能為力,這時(shí)***不要在應(yīng)用程序中實(shí)施復(fù)雜的程序控制,而是應(yīng)當(dāng)采用數(shù)據(jù)庫(kù)觸發(fā)器來(lái)實(shí)施復(fù)雜的事物規(guī)則。數(shù)據(jù)庫(kù)觸發(fā)器能實(shí)現(xiàn)由數(shù)據(jù)庫(kù)本身,而不是應(yīng)用程序,來(lái)約束數(shù)據(jù)符合復(fù)雜的事物處理規(guī)則,并且容易創(chuàng)建,便于管理,避免大量的網(wǎng)絡(luò)I/O。

 

2.3 使用存儲(chǔ)過(guò)程、存儲(chǔ)函數(shù)和包

 

Oracle的存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)是命名的能完成一定功能并且存儲(chǔ)在Server端的PL/SQL的集合。包是一種把有關(guān)的過(guò)程和函數(shù)組織封裝成一個(gè)數(shù)據(jù)庫(kù)程序單元的方法。它們相對(duì)于應(yīng)用程序的過(guò)程、函數(shù)而言,把SQL命令存儲(chǔ)在Server端。使用存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù),應(yīng)用程序不必再包含多個(gè)網(wǎng)絡(luò)操作的SQL語(yǔ)句去執(zhí)行數(shù)據(jù)庫(kù)服務(wù)器操作,而是簡(jiǎn)單調(diào)用存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù),在網(wǎng)絡(luò)上傳輸?shù)闹皇钦{(diào)用過(guò)程的名字和輸出結(jié)果,這樣就可減少大量的網(wǎng)絡(luò)I/O。

 

3 應(yīng)用程序的調(diào)整

 

3.1 SQL語(yǔ)句的優(yōu)化

 

SQL語(yǔ)句的執(zhí)行速度,可以受很多因素的影響而變化。但主要的影響因素是:驅(qū)動(dòng)表、執(zhí)行操作的先后順序和索引的運(yùn)用??梢杂珊芏嗖煌姆椒ㄩg接地改變這些因素,以達(dá)到***的執(zhí)行速度。這里主要探討當(dāng)對(duì)多個(gè)表進(jìn)行連接查詢(xún)時(shí)應(yīng)遵循的優(yōu)化原則:

 

3.2 建立和使用視圖、索引

 

利用視圖可以將基表中的列或行進(jìn)行裁減、隱藏一部分?jǐn)?shù)據(jù),并且能夠?qū)⑸婕暗蕉鄠€(gè)表的復(fù)雜查詢(xún)以視圖的方式給出,使應(yīng)用程序開(kāi)發(fā)簡(jiǎn)潔快速。利用索引可以提高查詢(xún)性能,減少磁盤(pán) I/O,優(yōu)化對(duì)數(shù)據(jù)表的查詢(xún),加速SQL語(yǔ)句的執(zhí)行。但任何時(shí)候建立索引都能提高性能,何時(shí)建立索引應(yīng)當(dāng)遵循以下原則:該表常用來(lái)在索引列上查詢(xún),該表不常更新、插入、刪除等操作,查詢(xún)出來(lái)的結(jié)果記錄數(shù)應(yīng)控制在原表的2%~4%。

 

3.3 使用 Oracle 的數(shù)組接口

 

當(dāng)一個(gè)客戶(hù)應(yīng)用程序插入一行或用一個(gè)查詢(xún)來(lái)向服務(wù)器請(qǐng)求某行時(shí),不是發(fā)送具有單個(gè)行的網(wǎng)絡(luò)包,而是采用數(shù)組處理,即把要插入的多個(gè)行或檢索出的多個(gè)行緩沖在數(shù)組中,然后通過(guò)很少的幾個(gè)包就可在網(wǎng)上傳送這些數(shù)組。例如,一個(gè)給定的Select語(yǔ)句返回2000行數(shù)據(jù),每行平均大小為40個(gè)字節(jié),數(shù)據(jù)包的大小為4kB,而數(shù)組大小參數(shù)(arraysize)設(shè)置為20 ,則需從服務(wù)器發(fā)送100個(gè)數(shù)據(jù)包到客戶(hù)機(jī)。如果簡(jiǎn)單地把(arraysize)設(shè)置為2000,那么同樣的操作只需要傳送 20個(gè)數(shù)據(jù)包。這樣就減少了網(wǎng)絡(luò)的傳輸量,提高了所有應(yīng)用的性能。

 

4 總結(jié)

 

我們?cè)陂_(kāi)發(fā)應(yīng)用程序時(shí),遵循上述的方法和原則,對(duì)系統(tǒng)進(jìn)行調(diào)整,收到了令人滿(mǎn)意的效果。但是應(yīng)當(dāng)指出,由于客戶(hù)機(jī)、網(wǎng)絡(luò)、服務(wù)器這3個(gè)相互依存的組成部分都必須調(diào)整和同步才能產(chǎn)生***的性能,因此還應(yīng)根據(jù)系統(tǒng)的具體情況,具體分析和調(diào)整。

通過(guò)上文中的詳細(xì)講解大家能夠知道Oracle數(shù)據(jù)庫(kù)的系統(tǒng)調(diào)優(yōu)的工作的進(jìn)行流程,希望大家學(xué)習(xí)了上文之后能夠很好的掌握Oracle數(shù)據(jù)庫(kù)的系統(tǒng)調(diào)優(yōu),相信這對(duì)大家日后的工作是非常有用的,希望大家都能夠從上文中涉及到的內(nèi)容中有所收獲。

 

責(zé)任編輯:迎迎 來(lái)源: 中國(guó)IT實(shí)驗(yàn)室
相關(guān)推薦

2011-05-17 14:46:38

Oracle數(shù)據(jù)庫(kù)故障

2011-04-13 09:19:05

Oracle數(shù)據(jù)庫(kù)系統(tǒng)性能

2011-02-28 17:12:20

Oracle數(shù)據(jù)庫(kù)

2010-05-04 17:08:24

Oracle數(shù)據(jù)庫(kù)

2010-04-12 14:55:26

Oracle數(shù)據(jù)庫(kù)

2011-04-13 15:17:09

數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)

2010-04-07 13:32:39

Oracle調(diào)優(yōu)

2011-07-08 16:02:54

HBase

2010-04-22 11:34:21

Oracle數(shù)據(jù)庫(kù)

2011-05-20 14:23:01

Oracle調(diào)優(yōu)

2011-04-18 13:46:24

數(shù)據(jù)庫(kù)設(shè)計(jì)

2023-11-10 09:25:36

Oracle數(shù)據(jù)庫(kù)

2010-03-10 11:29:47

MySQL數(shù)據(jù)庫(kù)性能調(diào)

2010-04-14 08:49:43

Oracle數(shù)據(jù)庫(kù)系統(tǒng)

2010-04-15 16:16:57

Oracle數(shù)據(jù)庫(kù)應(yīng)用

2011-04-13 15:25:12

數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)

2011-04-13 15:07:30

數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)

2023-04-03 10:25:00

數(shù)據(jù)庫(kù)性能調(diào)優(yōu)

2011-04-18 13:12:01

數(shù)據(jù)庫(kù)索引

2011-04-18 13:23:46

數(shù)據(jù)庫(kù)查詢(xún)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)