




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
用Oracle并行查詢發(fā)揮多CPU的威力在一個單獨的服務(wù)器中安裝更多的CPU成為目前的一個趨勢。使用對稱多處理服務(wù)器(SMP)的情況下,一個Oracle服務(wù)器擁有8個、16個或32個CPU以及幾吉比特RAM的SGA都不足為奇。Oracle跟上了硬件發(fā)展的步伐,提供了很多面向多CPU的功能。從Oracle8i開始,Oracle在每個數(shù)據(jù)庫函數(shù)中都實現(xiàn)了并行性,包括SQL訪問(全表檢索)、并行數(shù)據(jù)操作和并行恢復(fù)。對于Oracle專業(yè)版的挑戰(zhàn)是為用戶的數(shù)據(jù)庫配置盡可能多的CPU。在Oracle環(huán)境中實現(xiàn)并行性最好的方法之一是使用Oracle并行查詢(OPQ)。我將討論OPQ是如何工作的和怎樣用它來提升大的全表檢索的響應(yīng)時間以及調(diào)用并行事務(wù)回滾等等。使用OPQ當(dāng)在Oracle中進行一次合法的、大型的全表檢索時,OPQ能夠極大地提高響應(yīng)時間。通過OPQ,Oracle將表劃分成如圖A所示的邏輯塊。由OPQ劃分的表一旦表被劃分成塊,Oracle啟用并行的子查詢(有時稱為雜務(wù)進程),每個子查詢同時讀取一個大型表中的一塊。所有子查詢完畢以后,Oracle將結(jié)果會傳給并行查詢調(diào)度器,它會重新安排數(shù)據(jù),如果需要則進行排序,并且將結(jié)果傳遞給最終用戶。OPQ具有無限的伸縮性,因此,以前需要花費幾分鐘的全表檢索現(xiàn)在的響應(yīng)時間卻不到1秒。OPQ嚴(yán)重依賴于處理器的數(shù)量,通過并行運行之所以可以極大地提升全表檢索的性能,其前提就是使用了N-1個并行進程(N=Oracle服務(wù)器上CPU的數(shù)量)。必須注意非常重要的一點,即Oracle9i能夠自動檢測外部環(huán)境,包括服務(wù)器上CPU的數(shù)量。在安裝時,Oracle9i會檢查服務(wù)器上CPU的數(shù)量,設(shè)置一個名為cpu_count的參數(shù),并使用cpu_count作為默認(rèn)的初始化輸入?yún)?shù)。這些初始化參數(shù)會影響到Oracle對內(nèi)部查詢的處理。下面就是Orale在安裝時根據(jù)cpu_count而設(shè)置的一些參數(shù):fast_start_parallel_rollbackparallel_max_serverslog_bufferdb_block_lru_latches參數(shù)讓我們進一步看看CPU的數(shù)量是如何影響這些參數(shù)的。參數(shù)fast_start_parallel_rollbackOracle并行機制中一個令人興奮之處是在系統(tǒng)崩潰時調(diào)用并行回滾得能力。當(dāng)Oracle數(shù)據(jù)庫發(fā)生少有的崩潰時,Oracle能自動檢測未完成的事務(wù)并回滾到起始狀態(tài)。這被稱為并行熱啟動,而Oracle使用基于cpu_count的fast_start_parallel_rollback參數(shù)來決定未完成事務(wù)的秉性程度。并行數(shù)據(jù)操縱語言(DML)恢復(fù)能夠在Oracle數(shù)據(jù)庫崩潰后極大地加快其重新啟動的速度。此參數(shù)的默認(rèn)值是系統(tǒng)CPU數(shù)量的兩倍,但是一些DBA們認(rèn)為應(yīng)該將這個值設(shè)置為cpu_count的四倍。參數(shù)parallel_max_servers_parameterOracle一個顯著的加強是自動決定OPQ并行的程度。由于Oracle清楚服務(wù)器中CPU的數(shù)量,它會自動分配合適的子進程的數(shù)量來提升并行查詢的響應(yīng)時間。當(dāng)然,會有其它的外部因素,比如表的劃分以及磁盤輸入/輸出子系統(tǒng)的布局等,但是根據(jù)cpu_count來設(shè)置parallel_max_servers參數(shù)將給Oracle一個合理的依據(jù)來選擇并行的程度。由于Oracle的并行操作嚴(yán)重依賴服務(wù)器上CPU的數(shù)量,parallel_max_servers會被設(shè)置成服務(wù)器上CPU的數(shù)量。如果在一臺服務(wù)器上運行多個實例,則默認(rèn)值太大了,會導(dǎo)致過度的頁面交換和嚴(yán)重的CPU負(fù)擔(dān)。并行的程度還依賴于目標(biāo)表中分區(qū)的數(shù)量,因此parallel_max_servers應(yīng)該設(shè)置成足夠大以允許Oracle為每個查詢選擇最佳數(shù)量的并行子查詢。參數(shù)log_buffer參數(shù)log_buffer定義了供即刻寫入redo日志信息的保留RAM的數(shù)量,這個參數(shù)受cpu_count的影響。Oracle推薦log_buffer最大為cpu_count乘以500KB或128KB。CPU的數(shù)量對于log_buffer來說非常重要,因為Oracle會生成多日志寫入(LGWR)進程來異步釋放redo信息。log_buffer是Oracle中最易誤解的的RAM參數(shù)之一,通常存在下面幾個配置錯誤:log_buffer被設(shè)置得太高(例如,大于1MB),這回引起性能問題,因為大容量的結(jié)果會使得寫入同步進行(例如,日志同步等待事件非常高)。log_buffer不是db_block_size的倍數(shù)。在的Oracle9i中,log_buffer應(yīng)該是2048字節(jié)的倍數(shù)。參數(shù)db_block_lru_latchesLRU鎖的數(shù)量是在Oracle數(shù)據(jù)庫內(nèi)部用來管理數(shù)據(jù)庫緩沖的,這嚴(yán)重依賴于服務(wù)器上CPU的數(shù)量。很多聰明的Oracle9i的DBA使用多沖數(shù)據(jù)緩沖(例如db_32k_cache_size),他們推薦將這個未公開聲明的參數(shù)重設(shè)置為默認(rèn)的最大值。db_block_lru_latches參數(shù)在Oracle8i中使用得很多,但是在Oracle9i中變成了一個未公開聲明的參數(shù),因為Oracle現(xiàn)在根據(jù)數(shù)據(jù)庫擁有的CPU數(shù)量設(shè)置了一個合理的默認(rèn)值。db_block_lru_latches默認(rèn)被設(shè)置為服務(wù)器上cpu_count的一半(例如服務(wù)器上只有一個Oracle數(shù)據(jù)庫)。Oracle推薦db_block_lru_latches千萬不要超過cpu_count的兩倍或三倍,或db_block_buffers的五十分之一。如果使用多緩沖池則這種計算方法有一個問題,因為不能控制分配給每個數(shù)據(jù)緩沖池的鎖的數(shù)量。如果db_writers參數(shù)大于1,則默認(rèn)值或許顯得太小。加強服務(wù)器Oracle數(shù)據(jù)庫總是在提升性能,根據(jù)外部服務(wù)器環(huán)境檢測cpu_count和基本參數(shù)設(shè)置的能力對于Oracle軟件來說是一個重要的加強。隨著更多的Oracle系統(tǒng)轉(zhuǎn)移到SMP上來,當(dāng)客戶要采取增強措施并將眾多的數(shù)據(jù)庫轉(zhuǎn)移到擁有32個或64個CPU的巨大服務(wù)器上來的時候,這些參數(shù)顯得愈發(fā)重要。parallel_adaptive_multi_user booleanTRUE說明:啟用或禁用一個自適應(yīng)算法,旨在提高使用并行執(zhí)行方式的多用戶環(huán)境的性能。通過按系統(tǒng)負(fù)荷自動降低請求的并行度,在啟動查詢時實現(xiàn)此功能。當(dāng)PARALLEL_AUTOMATIC_TUNING=TRUE時,其效果最佳。值范圍:TRUE|FALSE默認(rèn)值:如果PARALLEL_AUTOMATIC_TUNING=TRUE,則該值為TRUE;否則為FALSEparallel_automatic_tuning booleanTRUE說明:如果設(shè)置為TRUE,Oracle將為控制并行執(zhí)行的參數(shù)確定默認(rèn)值。除了設(shè)置該參數(shù)外,你還必須為系統(tǒng)中的表設(shè)置并行性。值范圍:TRUE|FALSE默認(rèn)值:FALSEparallel_execution_message_sizeinteger4096說明:指定并行執(zhí)行(并行查詢,PDML,并行恢復(fù)和復(fù)制)消息的大小。如果值大于2048或4096,就需要更大的共享池。如果PARALLEL_AUTOMATIC_TUNING=TRUE,將在大存儲池之外指定消息緩沖區(qū)。值范圍:2148-無窮大。默認(rèn)值:如果PARALLEL_AUTOMATIC_TUNING為FALSE,通常值為2148;如果PARALLEL_AUTOMATIC_TUNING為TRUE,則值為4096(根據(jù)操作系統(tǒng)而定)。parallel_instance_group string說明:一個群集數(shù)據(jù)庫參數(shù),標(biāo)識用來大量產(chǎn)生并行執(zhí)行從屬的并行例程組。并行操作只對在其INSTANCE_GROUPS參數(shù)中指定一個匹配組的例程大量產(chǎn)生并行執(zhí)行從屬。值范圍:一個代表組名的字符串。默認(rèn)值:由所有當(dāng)前活動例程構(gòu)成的組parallel_max_servers integer160說明:指定一個例程的并行執(zhí)行服務(wù)器或并行恢復(fù)進程的最大數(shù)量。如果需要,例程啟動時分配的查詢服務(wù)器的數(shù)量將增加到該數(shù)量。值范圍:0-256默認(rèn)值:由CPU_COUNT,PARALLEL_AUTOMATIC_TUNING和PARALLEL_ADAPTIVE_MULTI_USER確定parallel_min_percent integer0說明:指定并行執(zhí)行要求的線程的最小百分比。設(shè)置該參數(shù),可以確保并行執(zhí)行在沒有可用的恰當(dāng)查詢從屬進程時,會顯示一個錯誤消息,并且該查詢會因此而不予執(zhí)行。值范圍:0-100默認(rèn)值:0,表示不使用該參數(shù)。parallel_min_servers integer0說明:指定為并行執(zhí)行啟動例程后,Oracle創(chuàng)建的查詢服務(wù)器進程的最小數(shù)量。值范圍:0-PARALLEL_MAX_SERVERS。默認(rèn)值:0parallel_server booleanTRUE說明:將PARALLEL_SERVER設(shè)置為TRUE,可以啟用群集數(shù)據(jù)庫選項。值范圍:TRUE|FALSE默認(rèn)值:FALSEparallel_server_instances integer2說明:當(dāng)前已配置的例程的數(shù)量。它用于確定SGA結(jié)構(gòu)的大小,該結(jié)構(gòu)由已配置的例程數(shù)量來確定。正確設(shè)置該參數(shù)將改善SGA的內(nèi)存使用情況。有幾個參數(shù)是用該數(shù)量計算得到的。值范圍:任何非零值。默認(rèn)值:1parallel_threads_per_cpu integer2說明:說明一個CPU在并行執(zhí)行過程中可處理的進程或線程的數(shù)量,并優(yōu)化并行自適應(yīng)算法和負(fù)載均衡算法。如果計算機在執(zhí)行一個典型查詢時有超負(fù)荷的跡象,應(yīng)減小該數(shù)值。值范圍:任何非零值。默認(rèn)值:根據(jù)操作系統(tǒng)而定(通常為2)舉例:ParallelExecutionforaSessi
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出租充氣皮艇合同范本
- 幾人共同購房合同范本
- 電纜外貿(mào)合同范本
- 包裝合同范本8篇
- 公司合同范本梳理審核
- 倉庫流轉(zhuǎn)合同范本
- 單位集資建房轉(zhuǎn)讓合同范本
- 勞防用品采購合同范本
- 出售立軸制砂機合同范本
- 出售玻璃蓋板合同范本
- 冰淇淋店選址與競爭環(huán)境分析
- 領(lǐng)導(dǎo)干部離任交接表
- 儲運安全檢查分析(SCL)評價記錄
- 人教版六年級上冊道德與法治教案(5篇)
- 2024年無人駕駛環(huán)衛(wèi)行業(yè)研究報告-通渠有道
- (中職)中職生創(chuàng)新創(chuàng)業(yè)能力提升教課件完整版
- 中班健康課件《我不挑食》
- 人教版(2024新版)七年級上冊英語各單元重點語法知識點講義
- 生豬屠宰獸醫(yī)衛(wèi)生人員考試題庫答案(414道)
- 《完善中國特色社會主義法治體系》課件
- 2025版 高考試題分析-數(shù)學(xué)-部分4
評論
0/150
提交評論