国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

關(guān)于Oracle服務(wù)器性能全面調(diào)整攻略

瀏覽:4日期:2023-11-13 10:08:49
Oracle服務(wù)器是高度可調(diào)的數(shù)據(jù)庫系統(tǒng),它提供了許多特性,正確地設(shè)置和調(diào)整可以有效提高系統(tǒng)性能,因此,對系統(tǒng)進(jìn)行調(diào)整是數(shù)據(jù)庫治理員的主要責(zé)任。由于應(yīng)用設(shè)計(jì)人員很少或根本不會(huì)給數(shù)據(jù)庫治理人員提供必要的信息,因此只能采用對已有應(yīng)用系統(tǒng)影響最小的調(diào)整方式:重新分配內(nèi)存、調(diào)整磁盤I/O來提高性能。 調(diào)整內(nèi)存 Oracle服務(wù)器將信息存儲在兩個(gè)地方:內(nèi)存、磁盤。因?yàn)閮?nèi)存的存取比磁盤的存取快得多,為了獲得最佳的性能,總是希望將數(shù)據(jù)盡可能多地放在內(nèi)存供用戶讀取。可是系統(tǒng)內(nèi)存資源是有限的,不可能將所有數(shù)據(jù)放在內(nèi)存,因此,要在現(xiàn)有內(nèi)存資源的基礎(chǔ)上,通過調(diào)整內(nèi)存分配來獲得盡可能好的性能。調(diào)整內(nèi)存的分配,實(shí)際上就是對Oracle數(shù)據(jù)庫內(nèi)存結(jié)構(gòu)分配恰當(dāng)尺寸的可用內(nèi)存。 為了取得好的效果,調(diào)整要按如下順序進(jìn)行:調(diào)整操作系統(tǒng)、調(diào)整共享池、調(diào)整緩沖區(qū)高速緩存。由于后面調(diào)整所作的改變可能需要對前面的調(diào)整再次進(jìn)行判定和調(diào)整,因此,調(diào)整的過程可能需要若干次循環(huán)。 調(diào)整操作系統(tǒng) 操作系統(tǒng)運(yùn)行得好,是Oracle調(diào)整內(nèi)存分配的基礎(chǔ),其方法如下: 減少調(diào)頁或交換 過度的調(diào)頁或交換必定會(huì)降低操作系統(tǒng)的性能。可以用操作系統(tǒng)提供的實(shí)用程序進(jìn)行監(jiān)控,如發(fā)現(xiàn)有過度的調(diào)頁或交換,則說明系統(tǒng)總內(nèi)存存放不下已經(jīng)分配在內(nèi)存中的信息。解決的辦法是增加系統(tǒng)內(nèi)存總量,或減少已經(jīng)分配的內(nèi)存量。 調(diào)整系統(tǒng)全局區(qū)(SGA) SGA是Oracle數(shù)據(jù)庫存放系統(tǒng)信息的一塊區(qū)域,由所有的服務(wù)器和客戶進(jìn)程共享,主要由以下四部分組成:數(shù)據(jù)高速緩沖區(qū)、字典緩沖區(qū)、重演日志緩沖區(qū)、共享SQL池。建SGA的目的是為了將數(shù)據(jù)放在內(nèi)存以便快速存取,假如SGA過大內(nèi)存放不下,就要被交換到磁盤,產(chǎn)生過度交換或調(diào)頁,數(shù)據(jù)存取就快不了。在大多數(shù)系統(tǒng)里,過度調(diào)頁的壞處比大SGA的好處對性能的影響要大得多,因此寧可SGA小些,也要保證整個(gè)SGA能被內(nèi)存容下。 可利用SQL*DBA語句SHOW SGA來查看分配了多少內(nèi)以及每個(gè)內(nèi)部結(jié)構(gòu)的大小。 關(guān)于Oracle服務(wù)器性能全面調(diào)整攻略該機(jī)系統(tǒng)內(nèi)存256M,SGA大小約為115M,應(yīng)用過程中不會(huì)發(fā)生調(diào)頁或交換。為了提高性能,還可以在初始化參數(shù)文件INIT.ORA中添加參數(shù) PRE_PAGE_SGA=FALSE,使得Oracle在啟動(dòng)Instance時(shí)將整個(gè)SGA讀入內(nèi)存。該設(shè)置雖然會(huì)增加Instance啟動(dòng)時(shí)間,但會(huì)減少Oracle在啟動(dòng)后達(dá)到性能峰值所用的時(shí)間。 調(diào)整共享池 調(diào)整共享池主要包括三個(gè)方面:庫高速、數(shù)據(jù)字典緩存、對話信息。由于Oracle治理共享池中數(shù)據(jù)的算法,使得數(shù)據(jù)字典緩存中的數(shù)據(jù)比庫高速緩存中的數(shù)據(jù)在內(nèi)存中存留的時(shí)間長,因此,只要把庫高速緩存調(diào)整成可以接受的命中率,就能提高數(shù)據(jù)字典緩存的命中率。 檢查、調(diào)整庫高速緩存 可以通過動(dòng)態(tài)性能表V$LIBRARYCACHE來查詢Instance啟動(dòng)以來所有庫高速緩存的活動(dòng)。 V$LIBRARYCACHE表中以下幾列反映了庫高速緩存在執(zhí)行調(diào)用階段的不命中: PINS列,它的值顯示在庫高速緩存中執(zhí)行的次數(shù); RELOADS列,它的值顯示在執(zhí)行階段庫高速緩存不命中的數(shù)目。 關(guān)于Oracle服務(wù)器性能全面調(diào)整攻略 一般來說,庫高速緩存總不命中數(shù)與總存取數(shù)之比應(yīng)當(dāng)接近零,本例為0.001%,說明庫高速緩存命中率很高,該比率假如接近或大于1%,就應(yīng)當(dāng)立即采取措施來減少這種不命中。 措施一:增加初始化參數(shù)shared_pool_size的值,提高庫高速緩存可用的內(nèi)存數(shù)量,同時(shí)為了取得好的效果,可能還要增加初始化參數(shù)open_cursors的值,以提高對話答應(yīng)的光標(biāo)數(shù)。需要注重的是:為庫高速緩存分配了太多的內(nèi)存可能引起調(diào)頁或交換。 措施二:寫等價(jià)的SQL語句,盡可能讓SQL語句和PL/SQL塊共享一個(gè)SQL區(qū),來減少庫高速緩存的不命中。這是應(yīng)用設(shè)計(jì)人員應(yīng)該做到的:SQL語句或PL/SQL塊的文本必須每一個(gè)字符都等價(jià),包括大小寫和空格。 檢查、調(diào)整數(shù)據(jù)字典高速緩存 在應(yīng)用已經(jīng)運(yùn)行,數(shù)據(jù)庫達(dá)到了一種相對“穩(wěn)定的狀態(tài)”之后,可以通過動(dòng)態(tài)性能表V$ROWCACHE來查詢數(shù)據(jù)字典高速緩存的活動(dòng)。 V$ROWCACHE表中以下幾列反映了數(shù)據(jù)字典高速緩存的使用和有效性: GETS列,它的值顯示請求相應(yīng)項(xiàng)的總數(shù)。 GETMISSES列,它的值顯示造成高速緩存不命中的數(shù)據(jù)請求數(shù)。 關(guān)于Oracle服務(wù)器性能全面調(diào)整攻略 一般來說,數(shù)據(jù)字典高速緩存總不命中數(shù)與總存取數(shù)之比應(yīng)當(dāng)接近零,本例為1.616%,說明數(shù)據(jù)字典高速緩存命中率比較高,該比率假如大于10%,甚至在應(yīng)用過程中該比率還在增長時(shí),就應(yīng)當(dāng)立即通過增加初始化參數(shù)shared_pool_size的值,來提高數(shù)據(jù)字典高速緩存可用的內(nèi)存數(shù)量,從而減少這種不命中。 檢查、調(diào)整對話信息占用共享池的大小 多線程服務(wù)器答應(yīng)進(jìn)程共享內(nèi)存和連接,能支持大量用戶同時(shí)訪問數(shù)據(jù)庫。使用多線程服務(wù)器結(jié)構(gòu)時(shí),需要將共享池分得大一些以容納對話信息??梢酝ㄟ^動(dòng)態(tài)性能表V$SESSTAT來查詢Oracle收集對話信息使用的總內(nèi)存統(tǒng)計(jì)。 V$SESSTAT表中session memory列,顯示分配給對話的內(nèi)存字節(jié)數(shù)。 max session memory列,顯示分配給對話的最大內(nèi)存數(shù)。 關(guān)于Oracle服務(wù)器性能全面調(diào)整攻略 第二個(gè)結(jié)果比第一個(gè)結(jié)果大,但第一個(gè)結(jié)果能更好地估計(jì)共享內(nèi)存應(yīng)該多大,除非所有對話幾乎在同一時(shí)間都達(dá)到最大分配。假如共享池不夠,可以通過增加初始化參數(shù)shares_pool_size的值來增加。本例中共享池的大小為52428800,容納對話信息綽綽有余。調(diào)整緩沖區(qū)高速緩存 Oracle啟動(dòng)后不斷收集和統(tǒng)計(jì)數(shù)據(jù)存取的情況,并將其存放在動(dòng)態(tài)性能表V$SYSSTAT中。表中對調(diào)整緩沖區(qū)高速緩存有用的為以下幾項(xiàng)統(tǒng)計(jì): dbblock gets 該統(tǒng)計(jì)值為數(shù)據(jù)請求的總數(shù); consistent gets 該統(tǒng)計(jì)值為通過對內(nèi)存緩沖區(qū)存取即能滿足的請求數(shù); physical reads 該統(tǒng)計(jì)值為磁盤文件存取的總數(shù)。 下面語句可以監(jiān)控在一段時(shí)間內(nèi)V$SYSSTAT表中的統(tǒng)計(jì):   關(guān)于Oracle服務(wù)器性能全面調(diào)整攻略  用以下公式計(jì)算緩沖區(qū)高速緩存的命中率 :命中率=1-( physical reads /(db block gets+ consistent gets))。根據(jù)以上查詢出的統(tǒng)計(jì)數(shù)據(jù),計(jì)算出緩沖區(qū)高速緩存的存取命中率為99.198%。 關(guān)于Oracle服務(wù)器性能全面調(diào)整攻略 該例中,命中率很高,說明緩沖區(qū)高速緩存夠用,性能良好。假如高速緩存大到足以容納最經(jīng)常存取的數(shù)據(jù),在保持高命中率的前提下,可以通過適當(dāng)減少初始化參數(shù)db_block_buffers的值來減少高速緩存的大小,從而可將省出來的內(nèi)存用于其他Oracle內(nèi)存結(jié)構(gòu)。假如命中率低于70%的話,性能就會(huì)造成下降,就應(yīng)該立即通過增加初始化參數(shù)db_block_buffers的值(它的最大值為65535),來擴(kuò)大緩沖區(qū)高速緩存的大小。 重新分配內(nèi)存 經(jīng)過上述對Oracle內(nèi)存結(jié)構(gòu)分配的調(diào)整,可以再次對庫高速緩存、數(shù)據(jù)字典高速緩存和緩沖區(qū)高速緩存的性能作出評估。假如有可能減少某種結(jié)構(gòu)的內(nèi)存消耗,就可以考慮給其他結(jié)構(gòu)多分配一些內(nèi)存,以得到增加可用內(nèi)存的好處。但要注重,經(jīng)過調(diào)整后的Oracle內(nèi)存結(jié)構(gòu),假如使SGA過大而不能全部填入主存,就可能會(huì)使操作系統(tǒng)引起過度調(diào)頁或分配,從而降低性能。 在重新分配內(nèi)存的過程中,假如發(fā)現(xiàn)要取得Oacle最佳內(nèi)存結(jié)構(gòu)十分困難,就需要考慮花費(fèi)資金,通過在計(jì)算機(jī)中增加更多的內(nèi)存來進(jìn)一步改進(jìn)性能。
標(biāo)簽: Oracle 數(shù)據(jù)庫
主站蜘蛛池模板: 广元市| 韶关市| 平果县| 工布江达县| 岳阳市| 壶关县| 孟津县| 于田县| 平和县| 富锦市| 磐石市| 平阴县| 祁门县| 襄汾县| 年辖:市辖区| 金华市| 堆龙德庆县| 巫山县| 瑞金市| 贡嘎县| 大庆市| 达州市| 宜良县| 介休市| 凉城县| 奉化市| 杭州市| 中牟县| 敦化市| 寿宁县| 遵化市| 沁源县| 格尔木市| 台北市| 白水县| 浙江省| 内江市| 平陆县| 富锦市| 郯城县| 定日县|