版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本文格式為Word版,下載可任意編輯——oracle性能調(diào)優(yōu)匯總性能調(diào)優(yōu)
方法:
一、檢查日志是否有錯(cuò)誤二、檢查參數(shù)是否設(shè)置正確
三、檢查系統(tǒng)IO、CPU、內(nèi)存等利用率,查看哪些占用較高四、檢查哪些SQL語(yǔ)句大量占用IO或CPU
權(quán)衡性能與安全的方面:一、多個(gè)控制文件
二、一個(gè)日志文件組中有多個(gè)日志文件三、頻繁的執(zhí)行檢查點(diǎn)四、備份數(shù)據(jù)文件五、頻繁的歸檔六、塊檢查
七、同時(shí)執(zhí)行操作與統(tǒng)計(jì)
性能調(diào)優(yōu)工具:
查看ALTER.LOG中的信息:
1、用/ORA-能查找文件中的錯(cuò)誤信息
2、要想讓ALTER.LOG文件中產(chǎn)生檢查點(diǎn)開始與終止信息,得修改參數(shù)LOG_CHECKPOINTS_TO_ALERT,將之修改為TRUE。默認(rèn)為FALSE。
SQL>ALTERSYSTEMSETLOG_CHECKPOINTS_TO_ALERT=TRUESCOPE=BOTH;
在用戶UDUMP目錄下的文件中產(chǎn)生監(jiān)控用戶執(zhí)行信息:
方法1、監(jiān)控自己的操作。在自己的session中設(shè)置參數(shù),這樣就能在用戶udump目錄下生成執(zhí)行的SQL語(yǔ)句信息
SQL>ALTERSESSIONSETSQL_TRACE=TRUE;
在pl/sql或者sqlplus中,開啟一個(gè)sql_window。(1)先運(yùn)行:altersessionsetsql_trace=true;(2)再運(yùn)行你那個(gè)返回結(jié)果不正確的SQL
(3)再運(yùn)行:altersessionsetsql_trace=false;
(4)馬上登陸到機(jī)器上,到$ORACLE_BASE/admin/sid/udump目錄下。(5)找到剛生成的.trc文件(假設(shè)文件名是xxx.trc),執(zhí)行命令轉(zhuǎn)儲(chǔ)跟蹤文件:tkprofxxx.trcaa.txt。
查看aa.txt文件。這個(gè)文件里面有執(zhí)行計(jì)劃。看看執(zhí)行計(jì)劃每一步返回的結(jié)果集記錄數(shù)是不是正確。
方法2、SYS用戶監(jiān)控別的用戶執(zhí)行狀況
方法3、對(duì)所有SESSION進(jìn)行監(jiān)控
SQL>ALTERSESSIONSETSQL_TRACE=TURE;
安裝STATSPACK
一、創(chuàng)立表空間,最少100M
二、安裝
在安裝時(shí)默認(rèn)創(chuàng)立了一個(gè)用戶PERFSTAT,所以密碼也可以輸入這個(gè)
選擇要將快照存放于哪個(gè)表空間
使用STATSPACK
手動(dòng)執(zhí)行生成一次快照,間隔一般為10幾分鐘為益,中間不要有停機(jī)。
產(chǎn)生報(bào)表,產(chǎn)生的報(bào)表存放于當(dāng)前目錄下。
基于全局視圖
1、v$sysstat此表中記錄了數(shù)據(jù)庫(kù)啟動(dòng)以來(lái)各項(xiàng)指標(biāo)2、v$sgastat此表中記錄了SGA及子部件中的相關(guān)信息
3、v$system_event此表中記錄了系統(tǒng)中的事件信息,與v$event_name表關(guān)聯(lián)
基于session視圖
其他動(dòng)態(tài)性能視圖
以X$開頭的表為v$的基表。
V$fixed_table表中存儲(chǔ)了所有動(dòng)態(tài)性能表信息動(dòng)態(tài)性能視圖:
參數(shù)與事件有關(guān):
Statistics_level有三個(gè)值all\\typical(默認(rèn))\\basic??梢酝ㄟ^(guò)altersession\\altersysteset…來(lái)修改
Timed_statistics值為true/false,可以通過(guò)altersession\\altersysteset…來(lái)修改,最好開啟,跟statistics_level有關(guān),假使statistics_level設(shè)置為all或typical,則此值為true。假使statistics_level設(shè)置為basic,則為false。
Timed_os_statistics跟statistics_level有關(guān),假使statistics_level設(shè)置為all,則此值為5秒。假使statistics_level設(shè)置為basic或typical,則為0秒
Db_cache_advice值為on/off/ready,可以通過(guò)altersysteset…來(lái)修改。跟statistics_level有關(guān),假使statistics_level設(shè)置為all或typical,則此值為on。假使statistics_level設(shè)置為basic,則為off。
數(shù)據(jù)庫(kù)配置與IO
降低IO的方法:
一、將不同的數(shù)據(jù)文件放在不同的磁盤上(如表或索引,由于索引與表是同時(shí)讀取的,簡(jiǎn)單引起競(jìng)爭(zhēng))
二、將數(shù)據(jù)文件與REDO文件分開存放,REDO文件盡量放在IO快的硬盤上。三、減少與數(shù)據(jù)庫(kù)無(wú)關(guān)的磁盤IO
重要視圖:v$filestat顯示了對(duì)數(shù)據(jù)文件規(guī)律讀寫、單塊或多塊IO事件
表空間管理:
System表空間不能存放用戶數(shù)據(jù),應(yīng)當(dāng)用loacllymanaged管理表空間表與索引要分開存放在不同的磁盤上
創(chuàng)立獨(dú)立的undo表空間,不用數(shù)據(jù)庫(kù)本身的undo表空間。創(chuàng)立獨(dú)立的臨時(shí)表空間,不用數(shù)據(jù)庫(kù)本身的臨時(shí)表空間大的對(duì)像應(yīng)當(dāng)單獨(dú)創(chuàng)立表空間用于存放
為了加大全表掃描IO吞吐量,可以設(shè)置db_file_multiblock_read_count參數(shù)。讓他一次可以讀取多個(gè)塊,默認(rèn)為一次讀取一塊(一塊默認(rèn)為8K)。這個(gè)參數(shù)與操作系統(tǒng)有關(guān),例:假使此值設(shè)置為8,則一次可以讀取64K,假使操作系統(tǒng)一次讀取128K,則此是可行的,假使操作系統(tǒng)一次不能讀取64K,則不可行。一般操作系統(tǒng)一次IO可以達(dá)1M,假使此參數(shù)設(shè)置過(guò)大,數(shù)據(jù)庫(kù)會(huì)自動(dòng)降低此參數(shù)值。此參數(shù)可以在SESSION或SYSTEM設(shè)置。
初始化參數(shù)db_file_multiblock_read_count影響Oracle在執(zhí)行全表掃描時(shí)一次讀取的block的數(shù)量.
db_file_multiblock_read_count的設(shè)置要受OS最大IO能力影響,也就是說(shuō),假使你系統(tǒng)的硬件IO能力有限,
即使設(shè)置再大的db_file_multiblock_read_count也是沒(méi)有用的。
理論上,最大db_file_multiblock_read_count和系統(tǒng)IO能力應(yīng)當(dāng)有如下關(guān)系:
Max(db_file_multiblock_read_count)=MaxOsIOsize/db_block_size
當(dāng)然這個(gè)Max(db_file_multiblock_read_count)還要受Oracle的限制,目前Oracle所支持的最大db_file_multiblock_read_count值為128.
重要視圖:
V$session_longops查詢一些長(zhǎng)時(shí)間全表掃描的執(zhí)行信息(大于6秒鐘)監(jiān)控?cái)?shù)據(jù)庫(kù)中的全表掃描:
Shorttables小于4塊Longtables大于4塊
查詢執(zhí)行比較長(zhǎng)的全表掃描:
可以通過(guò)如下語(yǔ)句向v$session_longops中添加記錄,以便監(jiān)控:
檢查點(diǎn)-分全檢查點(diǎn)與間接檢查點(diǎn)
全檢查點(diǎn)-CKPT更新控制文件與數(shù)據(jù)文件頭,DBWN就將臟數(shù)據(jù)一次性寫入數(shù)據(jù)文件。全檢查點(diǎn)又分:
Complete-一次性將數(shù)據(jù)寫入數(shù)據(jù)文件。用命令altersystemcheckpoint;Tablespace-只將相關(guān)的表空間的數(shù)據(jù)寫入數(shù)據(jù)文件
間接檢查點(diǎn)-CKPT更新控制文件與數(shù)據(jù)文件頭,分次將數(shù)據(jù)漸漸的寫入數(shù)據(jù)文件(默認(rèn))
為了提高IO,盡量將數(shù)據(jù)放在REDO文件中,少發(fā)生檢查點(diǎn)少寫數(shù)據(jù)文件。但放置太多假使數(shù)據(jù)庫(kù)重啟后恢復(fù)時(shí)間會(huì)很長(zhǎng),可以通過(guò)fast_start_mttr_target設(shè)置恢復(fù)時(shí)間,如600秒。數(shù)據(jù)庫(kù)就會(huì)自動(dòng)調(diào)整其他參數(shù)以滿足恢復(fù)時(shí)間為10分鐘。
歸檔文件應(yīng)當(dāng)放在其他磁盤上,REDO組中的文件應(yīng)當(dāng)分開放在不同的磁盤上,為了提高歸檔寫速度,可以設(shè)置多個(gè)歸檔進(jìn)程。內(nèi)存調(diào)優(yōu)
Librarycache保存SQL命令(主要調(diào)試對(duì)象)
Datadictionarycache保存數(shù)據(jù)字典(相對(duì)固定,主要調(diào)試對(duì)象)
通過(guò)showparametersga能查看到sga中各部件的大小,通過(guò)v$sysstat能查看到各部件中的詳細(xì)組成及大小。
一條SQL存入LIBRARYCACHE時(shí),他會(huì)自動(dòng)判斷這條SQL與以前解析過(guò)的SQL是否一樣,一樣就調(diào)用以前解析過(guò)的SQL去執(zhí)行并返回結(jié)果(軟解析),假使不一樣,他就會(huì)去將這條SQL進(jìn)行解析,檢查這條SQL的權(quán)限,語(yǔ)法等,生成讓數(shù)據(jù)庫(kù)能懂的執(zhí)行代碼,并返回執(zhí)行結(jié)果(硬解析)。
判斷是否一樣的條件:
一、新輸入的SQL與LIBCTIONARYCACHE中的SQL是否一樣
二、將新輸入的SQL生成HASH值,與這前的SQL的HASH值進(jìn)行比較以判斷是否一樣三、假使HASH值一樣,這時(shí)數(shù)據(jù)庫(kù)再?gòu)念^一一比較SQL語(yǔ)句中的各字母,包括空格、大小寫、解釋,如下三條就不同:
數(shù)據(jù)庫(kù)認(rèn)為常量不一樣也不是同一SQL,如:
可以用CURSOR_SHARING參數(shù)設(shè)置匹配條件:EXACT確切(默認(rèn))SIMILAR類似FORCE強(qiáng)制
四、假使有兩個(gè)用戶,而兩個(gè)用戶下有一個(gè)一致的表,這時(shí)即時(shí)SQL語(yǔ)句一致,但所有者不一樣,這樣這兩個(gè)SQL也不一樣。
五、當(dāng)SQL中綁定了變量,不管輸入的值是否一樣,這SQL是一樣的。所以猛烈要求使用綁定變量。
實(shí)例一-修改參數(shù):
一、查看數(shù)據(jù)庫(kù)中已經(jīng)硬解析了多少次
二、修改參數(shù)
三、修改后就使如下兩條SQL只用軟解析而不用硬解析:
實(shí)例二-綁定變量
一、用存儲(chǔ)過(guò)程插入數(shù)據(jù)使用綁定變量
不使用綁定變量
二、執(zhí)行存儲(chǔ)過(guò)程并查看執(zhí)行時(shí)間,以對(duì)比使用綁定變量與未使用綁定變量的執(zhí)行時(shí)間:
可以看出訪用綁定變量的時(shí)間遠(yuǎn)小于未使用綁定變量的時(shí)間
―――――――――――――――――――――――――――――――――――――――調(diào)試librarycache本卷須知:一是要使用綁定變量,
二是增加Librarycache,當(dāng)然得看freememory有多大(此值應(yīng)當(dāng)不能太低)。select*fromv$sgastatwherename='freememory';三是將一些常用的SQL常駐librarycache中
四是要在librarycache中留出一執(zhí)行大事務(wù)的空間
五是避免使用PL/SQL語(yǔ)句讀取大的塊,也就是將一個(gè)大的SQL語(yǔ)句分成多個(gè)小的SQL語(yǔ)句六是不要將largepool放在librarycache中
重要視圖:v$librarycache
NAMESPACElibrarycache中的各組件名
GETS在librarycache中尋覓某條SQL的次數(shù)GETHITS在librarycache中找到某條SQL的次數(shù)
GETHITRATIO在librarycache中的查找命中率(盡量的高)PINS在librarycache中執(zhí)行某條SQL的次數(shù)
PINHITS在librarycache中成功執(zhí)行某條SQL的次數(shù)
PINHITRATIO在librarycache中成功執(zhí)行某條SQL的命中率(盡量的高)RELOADS在librarycache中去執(zhí)行時(shí)發(fā)現(xiàn)以前的SQL已經(jīng)被清除了,得重新去載入并解析(此值應(yīng)當(dāng)小于1,假使大于1可能是shardpoolcache過(guò)小,應(yīng)當(dāng)增大。當(dāng)然得看freememory)
INVALIDATIONS由于表進(jìn)行了修改,這時(shí)就要重新解析(此值盡量的接近0)
提高SQL命中率的方法:一、綁定變量
二、少用動(dòng)態(tài)SQL語(yǔ)句
三、盡量使用同一個(gè)用戶登錄
V$sql_shared_cursor查看SQL為何不能與已經(jīng)存在LIBRARYCACHE中的SQL共享檢查L(zhǎng)IBRARYCACHE是否過(guò)小:
查詢正在運(yùn)行的SQL:
查看運(yùn)行的SQL的完整信息:
總結(jié):假使發(fā)現(xiàn)命中率低、freememory低、reloads高等,就表示librarycache過(guò)低,應(yīng)當(dāng)調(diào)大shared_pool_size,由于librarycache不能單獨(dú)調(diào)大。
查看LIBRARYCACHE大小建議:
此視圖能估算出SHARED_POOL大小的不同系統(tǒng)的性能變化。查看SQL執(zhí)行計(jì)劃:
V$sql_plan表中的hash_value字段與v$sql表中的plan_hash_value字段進(jìn)行關(guān)聯(lián)。
保存池(共享池中的一部分)SHARED_POOL_RESERVED_SIZE:當(dāng)載入一個(gè)大的對(duì)象時(shí)(5K),雖然在librarycache的碎片中有能放下5K的空間,但沒(méi)有能連續(xù)的能放下5K的空間,這時(shí)就只能調(diào)用保存池(相當(dāng)于預(yù)留的一個(gè)空間)以提高性能,不然就會(huì)清除一些過(guò)時(shí)的SQL對(duì)象,再重新載入解析執(zhí)行。當(dāng)調(diào)用的完后又會(huì)將空間還給保存池以供下一次使用。保存池大約為共享池的5-10%,最大不能超過(guò)50%。可以通過(guò)修改SHARED_POOL_RESERVED_SIZE大小來(lái)實(shí)現(xiàn)修改保存池大小。
可以通過(guò)V$SHARED_POOL_RESERVED視圖查看保存池是否滿足大小。
假使REQUEST_FAILURES大于0或逐漸增大,可能就是保存池太小,應(yīng)當(dāng)增大保存池和共享池大小。
假使REQUEST_FAILURES等于0或不逐漸增大,并且保存池中的空閑空間常大于50%可能就是保存池太大,假使太大應(yīng)當(dāng)減小保存池。注:假使是自動(dòng)管理SGA,通過(guò)命令查看如下:SQL>showparametershared_pool;
NAMEYPEVALUE
shared_pool_reserved_sizebiginteger31876710shared_pool_sizebiginteger0
要想查看真實(shí)的shared_pool_size得從v$sga_dynamic_components表中查看。
修改shared_pool_size大小:
一、先要估算出librarycache現(xiàn)在占用大小
或
二、
將某些SQL固定在內(nèi)存中
一、先確定哪些SQL需要固定在內(nèi)存中
KEPT=NO表示該SQL不在內(nèi)存中二、執(zhí)行包
注:假使要固定最好在數(shù)據(jù)庫(kù)一啟動(dòng)時(shí)就固定,由于內(nèi)存中還沒(méi)有存在的包等,有空余空間。
sys.dbms_shared_pool.keep(address||','||hashvalue,'C');固定SQLsys.dbms_shared_pool.unkeep(address||','||hashvalue,'C');取消固定SQL
清除內(nèi)存中的對(duì)像,但固定的不會(huì)被清除。查找大的數(shù)據(jù)塊:
假使查到可以將該SQL改寫成小的數(shù)據(jù)塊以提高執(zhí)行速度。常用視圖:
―――――――――――――――――――――――――――――――――――――――調(diào)整DataDictionaryCache:
Gets:讀取次數(shù)
Getmisses:讀取失敗次數(shù)(該參數(shù)越小越好或盡量不增加,但假使數(shù)據(jù)庫(kù)剛啟動(dòng)不久則該參數(shù)可能較大,如285,由于剛啟動(dòng)好多數(shù)據(jù)本就不存在)
查詢執(zhí)行狀況:
假使不夠就可以調(diào)整SHARED_POOL_SIZE大小。altersystemsetshared_pool_size=50Mscope=spfile;
―――――――――――――――――――――――――――――――――――――――調(diào)整LargePool-大對(duì)像使用(I/O服務(wù)進(jìn)程,如DBWR_IO_SLAVES,備份與恢復(fù),共享模式,并行查詢),用的時(shí)候在SGA中分派,用完就清除。調(diào)整參數(shù)LARGE_POOL_SIZE
LARGE_POOL尋常用于共享服務(wù)器(MTS),并行計(jì)算或者RMAN備份恢復(fù)中。設(shè)置其大小的參數(shù)為:LARGE_POOL_SIZE
假使不設(shè)置MTS,LARGE_POOL尋常在RMAN、OPQ會(huì)使用到,LARGE_POOL_SIZE設(shè)置在10M50M應(yīng)當(dāng)差不多了。
假使RMAN備份恢復(fù)中,分派了多通道,可以考慮參考給出的公式。LARGE_POOL_SIZE=number_of_allocated_channels*(16MB+(4*size_of_tape_buffer))。
假使設(shè)置MTS,則由于UGA放到large_pool_size的起因,這個(gè)時(shí)候依據(jù)session最大數(shù)量和sort_ares_size等參數(shù)設(shè)置,必需增大large_pool_size的設(shè)置,可以考慮為session*(sort_area_size+2M)。這里要提醒一點(diǎn),不是必需使用MTS,我們都不主張使用MTS,特別同時(shí)在線用戶數(shù)小于500的狀況下。
―――――――――――――――――――――――――――――――――――――――調(diào)整BUFFERCACHE原理:
Server進(jìn)程讀磁盤數(shù)據(jù)到內(nèi)存LRU鏈表對(duì)列中去,DBWn進(jìn)程將內(nèi)存CHECKPOINTQUEUE對(duì)列中的臟數(shù)據(jù)寫入磁盤。LRU鏈表控制訪問(wèn)次數(shù)的排列,訪問(wèn)次數(shù)多的排在前面,次數(shù)少的或沒(méi)有被訪問(wèn)的放在后面直到清除。CHECKPOINTQUEUE臟數(shù)據(jù)排序,等待寫入磁盤。Buffercache中塊的四種狀態(tài):
Pinned:有多個(gè)塊,但只有一個(gè)塊能寫,其他塊等待
Clean:buffercache中的內(nèi)容與磁盤上的一致,也沒(méi)有被使用Free/unused:從來(lái)沒(méi)有使用過(guò)的快
Dirty:沒(méi)有被使用,但內(nèi)容與磁盤上的不一致,調(diào)用DBWn進(jìn)程寫到磁盤上,后才能淘汰?臟數(shù)據(jù)塊(dirtybuffer):buffercache中的內(nèi)存數(shù)據(jù)塊的內(nèi)容被修改,從而導(dǎo)致與數(shù)據(jù)文件中的數(shù)據(jù)塊的內(nèi)容不一致。?空閑數(shù)據(jù)塊(freebuffer):buffercache中的內(nèi)存數(shù)據(jù)塊為空。?清白數(shù)據(jù)塊(cleanbuffer):buffer的內(nèi)容與數(shù)據(jù)文件中的一致。?釘住的數(shù)據(jù)塊(pinbuffer):當(dāng)前正在更新的內(nèi)存數(shù)據(jù)塊。
DB_BLOCK_CHECKSUM=TRUN塊校驗(yàn),防止數(shù)據(jù)損壞。全增加1-2%的負(fù)載。Buffercache下有幾個(gè)子cache(default、keep、recycle、nkbuffercache)。他們的大小各不相關(guān),由以下三個(gè)參數(shù)分別指定
什么是大表?就是指有一定限制的塊個(gè)數(shù),11G中限制為20個(gè)塊的表為大表,此值可設(shè)定。
CACHETABLES
對(duì)一些大表進(jìn)行全表掃描時(shí),會(huì)將塊放在對(duì)列最終,很快就會(huì)被淘汰出局,但對(duì)于一些小表進(jìn)行全表掃描時(shí)也會(huì)這樣,但有些小表又往往要使用,不希望被淘汰出局,這時(shí)就可以將要全表掃描的小表固定起來(lái)不讓淘汰出局(指一定時(shí)間不會(huì)被淘汰,假使長(zhǎng)時(shí)間不訪問(wèn)也會(huì)被淘汰出局),使讀入的塊放在對(duì)列前面。
原則:不要在CACHE中放太多的表,以免使得內(nèi)存不夠盡量將表固定在keeppool中
在創(chuàng)立表時(shí)固定到內(nèi)存中-在最終加cache語(yǔ)句:
創(chuàng)立表后在修改:
注:要取消內(nèi)存中的表就在加nocache:SQL>ALTERTABLEemployeeNOCACHE;在hint中創(chuàng)立表到內(nèi)存中:
FREELIST:
假使有多個(gè)進(jìn)程對(duì)表進(jìn)行操作,那么可能對(duì)FREELIST進(jìn)行爭(zhēng)用并提醒“bufferbusywaits〞。這時(shí)就要以創(chuàng)立多個(gè)FREELIST,原則是對(duì)一個(gè)表有多少個(gè)進(jìn)程進(jìn)行操作就創(chuàng)立多少個(gè)FREELIST。單CPU創(chuàng)立多個(gè)FREELIST效果不大。推薦使用自動(dòng)管理方式-ASSM空間自動(dòng)管理(BITMAPS方式)。
查看FREELIST爭(zhēng)用狀況:
查看v$system_event表中的bufferbusywaits事件與v$waitstat表中的segmentheader事件就能確定是否有freelist爭(zhēng)用狀況。
此SQL能查詢是在爭(zhēng)用哪個(gè)表
注:創(chuàng)立ASSM管理方式-在創(chuàng)立表空間時(shí)指定:
這樣上面這個(gè)表就是使用了ASSM自動(dòng)管理方式管理。
指定多個(gè)DBWn:
假使buffercache中的臟數(shù)據(jù)過(guò)多,而又不能及時(shí)寫入數(shù)據(jù)文件,這時(shí)可能造成等待。為了解決這問(wèn)題可以指定多個(gè)DBWn進(jìn)程進(jìn)行寫操作。什么時(shí)候要增加DBWn進(jìn)程?
查看FREEBUFFERWAITS事件,假使較多就可能是DBWn進(jìn)程太少寫不過(guò)來(lái)。SQL>ALTERSYSTEMSETDB_WRITER_PROCESSES=5;多CPU和系統(tǒng)支持異步IO操作比較有用。
注:操作系統(tǒng)大多支持異步IO功能
異步IO:就是進(jìn)行發(fā)出一個(gè)讀指令,過(guò)一會(huì)在去取要的結(jié)果就可以了。(推薦)同步IO:就是進(jìn)程發(fā)出一個(gè)讀指令,直到結(jié)果返回。
為了實(shí)現(xiàn)異步IO,所以在安裝數(shù)據(jù)庫(kù)時(shí)必需安裝以下兩個(gè)文件:
開啟異步IO:
假使系統(tǒng)不支持異步IO,這時(shí)就不能用指定多個(gè)DBWn進(jìn)程的方式來(lái)提高讀寫速度,只能用以下方式實(shí)現(xiàn):
一個(gè)DBWn進(jìn)程與多個(gè)IOSLAVES進(jìn)程模擬異步IO。
獎(jiǎng)dbwr_io_slaves設(shè)置為多個(gè)時(shí)就啟動(dòng)了模擬IO。
動(dòng)態(tài)調(diào)整SGA
V$brffer_pool此視圖能查看到SGA調(diào)整之前與調(diào)整之后的各值
調(diào)整SGA各池大?。?/p>
調(diào)整REDOLOGBUFFER:
當(dāng)多個(gè)用戶都執(zhí)行DML或DDL操作時(shí),由于LGWR進(jìn)程只有一個(gè),可能造成不能及時(shí)的將修改記錄寫入REDOLOG日志文件,這時(shí)就有可能造成用戶進(jìn)程等待,所有有必要調(diào)整REDOLOGBUFFER大小。
當(dāng)LGWR進(jìn)程將修改記錄信息寫入完1、2、3時(shí)再重頭寫1時(shí),這時(shí)假使ARC0進(jìn)程寫放太慢,這時(shí)也要等待ARC0將信息寫重做日志后LGWR才能寫入REDOLOG,這時(shí)就可以增加REDOLOG日志組個(gè)數(shù)或日志組大小或增加ARC0進(jìn)程數(shù)(LOG_ARCHIVE_MAX_PROCESSES)。查看切換等待:
LGWR何時(shí)執(zhí)行?
用戶COMMIT時(shí)、三秒鐘、REDOLOGBUFFER三分之一時(shí)、1M時(shí)(所以不用配置太大,以免浪費(fèi),一般就1-2M或幾百K)。
REDOLOGBUFFER大小一般為512K或128*CPU數(shù).SQL>ALTERSYSTEMSETLOG_BUFFER=512K;
注:查看CPU個(gè)數(shù):
SQL>SHOWPARAMETERCPU;
如何查看是否REDOLOGBUFFER不足:方法一、V$sysstat:
Redoentries:向REDOLOGBUFFER中放了多少條REDO信息。
Redobufferallocationretries:在REDOLOGBUFFER不足的狀況下,嘗試了多少次去尋覓空余空間。
Redobufferallocationretries/Redoentries=%應(yīng)當(dāng)小于1%
方法二、發(fā)現(xiàn)不能向REDOLOGBUFFER中放信息時(shí)就會(huì)在v$session_wait中出現(xiàn)logbufferspaceevent事件。所以應(yīng)當(dāng)不出現(xiàn)logbufferspaceevent事件為最好。
調(diào)整:
方法一、增加REDOLOGBUFFER池大小方法二、假使LGWR等待:
A、增加日志組個(gè)數(shù)或日志組大小
B、增加ARCn進(jìn)程個(gè)數(shù)方法三、減少產(chǎn)成REDO信息
A、如批量導(dǎo)入可以不用產(chǎn)成REDO信息
B、在創(chuàng)立表或索引時(shí)指定NOLOGING不產(chǎn)生REDO信息
調(diào)整排序操作如下會(huì)用到排序:
Sort-based(sort、groub-by、orderby)
Hash-join
Bitmapoperators
Workarea:工作區(qū),在PGA內(nèi)存中單獨(dú)劃分了一個(gè)區(qū)域用于排序。工作區(qū)分三種狀況:
1、optimal全部輸入排序的數(shù)據(jù)都在內(nèi)存工作區(qū)中完成(理想狀況)
2、one-pass輸入排序的數(shù)據(jù)在內(nèi)存中放不下在磁盤中放一部分,做一次磁盤掃描。3、multi-pass輸入排序的數(shù)據(jù)在內(nèi)存中放不下在磁盤中放大部分,做屢屢磁盤掃描(最差)。PGA中各個(gè)用戶工作區(qū)大小是默認(rèn)為自動(dòng)管理,管理員只關(guān)心總的工作區(qū)大小就可以,不用關(guān)心各個(gè)用戶連接上來(lái)的工作區(qū)大小,但假使確實(shí)用戶連接過(guò)多,要使用的工作區(qū)過(guò)大,也可能超過(guò)管理員設(shè)置的總工作區(qū)大小。
在PGA中,用戶連接上來(lái)一個(gè)就會(huì)在PGA中分派一塊內(nèi)存(工作區(qū)),斷開后就會(huì)清除該工作區(qū)。
SQL>ALTERSYSTEM
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年植物檢疫保護(hù)區(qū)域隔離設(shè)施重要性真測(cè)試題
- 2026年網(wǎng)絡(luò)安全知識(shí)及操作技能測(cè)試題
- 2026天津市津南區(qū)衛(wèi)生健康系統(tǒng)面向社會(huì)招聘事業(yè)單位人員45人備考題庫(kù)及參考答案詳解
- 甘肅特崗教師試題及答案
- 氟化工考試試題及答案
- 2026年金融風(fēng)險(xiǎn)管理與防范中級(jí)模擬試卷
- 2026內(nèi)蒙古錫林郭勒盟深能北方能源控股有限公司招聘?jìng)淇碱}庫(kù)及一套參考答案詳解
- 2026年高考化學(xué)知識(shí)考點(diǎn)專項(xiàng)練習(xí)題
- 2026上半年貴州事業(yè)單位聯(lián)考畢節(jié)市七星關(guān)區(qū)招聘377人筆試備考題庫(kù)及答案解析
- 2026中國(guó)國(guó)際航空股份有限公司廣東分公司休息室就業(yè)見習(xí)崗招聘2人備考考試題庫(kù)及答案解析
- 北京市順義區(qū)2025-2026學(xué)年八年級(jí)上學(xué)期期末考試英語(yǔ)試題(原卷版+解析版)
- 中學(xué)生冬季防溺水主題安全教育宣傳活動(dòng)
- 2026年藥廠安全生產(chǎn)知識(shí)培訓(xùn)試題(達(dá)標(biāo)題)
- 2026年陜西省森林資源管理局局屬企業(yè)公開招聘工作人員備考題庫(kù)及參考答案詳解1套
- 冷庫(kù)防護(hù)制度規(guī)范
- 承包團(tuán)建燒烤合同范本
- 口腔種植牙科普
- 2025秋人教版七年級(jí)全一冊(cè)信息科技期末測(cè)試卷(三套)
- 搶工補(bǔ)償協(xié)議書
- 廣東省廣州市番禺區(qū)2026屆高一數(shù)學(xué)第一學(xué)期期末聯(lián)考試題含解析
- 2026年廣東省佛山市高三語(yǔ)文聯(lián)合診斷性考試作文題及3篇范文:可以“重讀”甚至“重構(gòu)”這些過(guò)往
評(píng)論
0/150
提交評(píng)論