ora數(shù)據(jù)庫(kù)參數(shù)配置_第1頁(yè)
ora數(shù)據(jù)庫(kù)參數(shù)配置_第2頁(yè)
ora數(shù)據(jù)庫(kù)參數(shù)配置_第3頁(yè)
ora數(shù)據(jù)庫(kù)參數(shù)配置_第4頁(yè)
ora數(shù)據(jù)庫(kù)參數(shù)配置_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

ora數(shù)據(jù)庫(kù)參數(shù)配置系統(tǒng)全局區(qū)SGA:SGA包含的組件:共享池(sharedpool);數(shù)據(jù)庫(kù)緩沖區(qū)?速緩存(databasebuffercache);?志緩沖區(qū)(redobuffercache);?池;Java池;流池等。SGA相關(guān)視圖:v$sga:V$SGA這個(gè)視圖包括了SGA的的總體情況,只包含兩個(gè)字段:name(SGA內(nèi)存區(qū)名字)和value(內(nèi)存區(qū)的值,單位為字節(jié))。它的結(jié)果和showsga的結(jié)果?致。v$sgastat:10g之前?于查看各SGA組件??。V$SGAINFO的作?基本和V$SGA?樣,只不過(guò)把Variablesize的部分更細(xì)化了?步v$sgainfo:10g及10g之后才有的。?于查看SGA組件??更簡(jiǎn)便。v$sga_dynamic_components:這個(gè)視圖記錄了SGA各個(gè)動(dòng)態(tài)內(nèi)存區(qū)的情況,它的統(tǒng)計(jì)信息是基于已經(jīng)完成了的,針對(duì)SGA動(dòng)態(tài)內(nèi)存區(qū)??調(diào)整的操作。v$sga_dynamic_free_memory:這個(gè)視圖只有?個(gè)字段就是?來(lái)表?SGA當(dāng)前可以?于調(diào)整各個(gè)組件的剩余??。v$sga_target_advice:該視圖可?于建議SGA??設(shè)置是否合理。SELECTa.sga_size,--sga期望??a.sga_size_factor,--期望sga??與實(shí)際sga??的分?a.estd_db_time,--sga設(shè)置為期望的??后,其dbtime消耗期望的變化a.estd_db_time_factor,--修改sga為期望??后,dbtime消耗的變化與修改前的變化分?a.estd_physical_reads--修改前后物理讀的差值FROMv$sga_target_advicea;--查看當(dāng)前的sga??showparametersga_max_size;--修改sga值altersystemsetsga_max_size=864Mscope=spfile;--要重啟數(shù)據(jù)庫(kù)altersystemsetsga_target=864M;?、共享池1、共享池相關(guān)視圖如何查看共享池多?合適,先查看statistics_level參數(shù)是否為typical或者all,然后統(tǒng)計(jì)共享池信息(內(nèi)存顧問(wèn))1.1v$shared_pool_advice視圖:可?于建議共享池??的設(shè)置selectshared_pool_size_for_estimatesp,--估算的共享池??(m為單位)估算的共享池??與當(dāng)前???estd_lc_memory_objectselm,--估算共享池中庫(kù)緩存的內(nèi)存對(duì)象數(shù)估算共享池中?于庫(kù)緩存的??(M為單位)估算將可以節(jié)省的解析時(shí)間。這些節(jié)省的時(shí)間來(lái)?于請(qǐng)求處理?個(gè)對(duì)象時(shí),重新它載?共享池的時(shí)間消耗和直接從庫(kù)緩存中讀取的時(shí)間消耗的差值。估算的節(jié)省的解析時(shí)間與當(dāng)前節(jié)省解析時(shí)間的?shared_pool_size_factorspf,--estd_lc_sizeel,--estd_lc_time_savedelt,--estd_lc_time_saved_factoraselts,--estd_lc_memory_object_hitsaselmo--估算的可以直接從共享池中命中庫(kù)緩存的內(nèi)存對(duì)象的命中次數(shù)fromv$shared_pool_advice;1.2V$SHARED_POOL_RESERVED視圖:存放了共享池保留區(qū)的統(tǒng)計(jì)信息--以下字段只有當(dāng)參數(shù)SHARED_POOL_RESERVED_SIZE設(shè)置了才有效selecta.FREE_SPACE,--保留區(qū)的空閑空間數(shù)。a.AVG_FREE_SIZE,--保留區(qū)的空閑空間平均數(shù)。a.FREE_COUNT,--保留區(qū)的空閑內(nèi)存塊數(shù)a.MAX_FREE_SIZE,--最?的保留區(qū)空閑空間數(shù)/doc/71fb112d0722192e4536f6f2.htmlED_SPACE,--保留區(qū)使?空間數(shù)a.AVG_USED_SIZE,--保留區(qū)使?空間平均數(shù)/doc/71fb112d0722192e4536f6f2.htmlED_COUNT,--保留區(qū)使?內(nèi)存塊數(shù)a.MAX_USED_SIZE,--最?保留區(qū)使?空間數(shù)a.REQUESTS,--請(qǐng)求再保留區(qū)查找空閑內(nèi)存塊的次數(shù)a.REQUEST_MISSES,--?法滿?查找保留區(qū)空閑內(nèi)存塊請(qǐng)求,需要從LRU列表中清出對(duì)象的次數(shù)/doc/71fb112d0722192e4536f6f2.htmlST_MISS_SIZE,--請(qǐng)求的內(nèi)存??,這次請(qǐng)求是最后?次需要從LRU列表清出對(duì)來(lái)滿?的請(qǐng)求--以下字段?論參數(shù)SHARED_POOL_RESERVED_SIZE是否設(shè)置了都有效a.MAX_MISS_SIZE,--所有需要從LRU列表清出對(duì)來(lái)滿?的請(qǐng)求中的內(nèi)存最???a.REQUEST_FAILURES,--沒(méi)有內(nèi)存能滿?的請(qǐng)求次數(shù)(導(dǎo)致4031錯(cuò)誤的請(qǐng)求)

/doc/71fb112d0722192e4536f6f2.htmlST_FAILURE_SIZE,--沒(méi)有內(nèi)存能滿?的請(qǐng)求所需的內(nèi)存??(導(dǎo)致4031錯(cuò)誤的請(qǐng)求)a.ABORTED_REQUEST_THRESHOLD,--不清出對(duì)象的情況下,導(dǎo)致4031錯(cuò)誤的最?請(qǐng)求??a.ABORTED_REQUESTS,--不清出對(duì)象的情況下,導(dǎo)致4031錯(cuò)誤的請(qǐng)求次數(shù)/doc/71fb112d0722192e4536f6f2.htmlST_ABORTED_SIZE--不清出對(duì)象的情況下,最后?次導(dǎo)致4031錯(cuò)誤的請(qǐng)求??fromV$SHARED_POOL_RESERVEDa可以根據(jù)后?4個(gè)字段值來(lái)決定如何設(shè)置保留區(qū)的??以避免4031錯(cuò)誤的發(fā)?1.3v$db_object_cache:顯?了所有被緩存在librarycache中的對(duì)象,包括表、索引、簇、同義詞、PL/SQL存儲(chǔ)過(guò)程和包以及觸發(fā)器SELECTo.owner,--對(duì)象所有者/doc/71fb112d0722192e4536f6f2.html,--對(duì)象名稱o.db_link,--如果對(duì)象存在dblink的話,dblink的名稱/doc/71fb112d0722192e4536f6f2.htmlspace,--庫(kù)緩存的對(duì)象命名空間o.type,--對(duì)象類型o.sharable_mem,--對(duì)象消耗的共享池中的共享內(nèi)存o.loads,--對(duì)象被載?次數(shù)。即使對(duì)象被置為?效了,這個(gè)數(shù)字還是會(huì)增長(zhǎng)o.executions,--對(duì)象執(zhí)?次數(shù),但本視圖中沒(méi)有被使?。可以參考視圖v$sqlarea中執(zhí)?次數(shù)o.locks,--當(dāng)前鎖住這個(gè)對(duì)象的?戶數(shù)(如正在調(diào)?、執(zhí)?對(duì)象)o.pins,--當(dāng)前pin住這個(gè)對(duì)象的?戶數(shù)(如正在編譯、解析對(duì)象)o.kept,--對(duì)象是否被保持,即調(diào)?了DBMS_SHARED_POOL.KEEPo.child_latch,--正在保護(hù)該對(duì)象的?latch的數(shù)量o.invalidations--?效數(shù)來(lái)永久將對(duì)象pin在內(nèi)存中。(YES|NO)FROMv$db_object_cacheo;1.4v$sql、v$sqlarea、v$sqltext:這三個(gè)視圖都可以?于查詢共享池中已經(jīng)解析過(guò)的SQL語(yǔ)句及其相關(guān)信息。V$SQL中列出了共享SQL區(qū)中所有語(yǔ)句的信息,它不包含GROUPBY字句,并且為每?條SQL語(yǔ)句中單獨(dú)存放?條記錄;V$SQLAREA中?條記錄顯?了?條共享SQL區(qū)中的統(tǒng)計(jì)信息。它提供了有在內(nèi)存中、解析過(guò)的和準(zhǔn)備運(yùn)?的SQL語(yǔ)句的統(tǒng)計(jì)信息;V$SQLTEXT包含了庫(kù)緩存中所有共享游標(biāo)對(duì)應(yīng)的SQL語(yǔ)句。它將SQL分?顯?。SELECTs.sql_text,--游標(biāo)中sql語(yǔ)句的前1000個(gè)字符s.sharable_mem,--被游標(biāo)占?的共享內(nèi)存??。如果存在多個(gè)?游標(biāo),則包所有?游標(biāo)占?的共享內(nèi)存??。s.persistent_mem,--?于打開(kāi)這條語(yǔ)句的游標(biāo)的?命過(guò)程中的固定內(nèi)存??。如果存在多個(gè)?游標(biāo),則包所有?游標(biāo)?命過(guò)程中的固定內(nèi)存??。s.runtime_mem,--打開(kāi)這條語(yǔ)句的游標(biāo)的執(zhí)?過(guò)程中的固定內(nèi)存??。如果存在多個(gè)?游標(biāo),則包所有?游標(biāo)執(zhí)?過(guò)程中的固定內(nèi)存??。s.sorts,--所有?游標(biāo)執(zhí)?語(yǔ)句所導(dǎo)致的排序次數(shù)s.version_count,--緩存中關(guān)聯(lián)這條的?游標(biāo)數(shù)s.loaded_versions,--緩存中載?了這條語(yǔ)上下?堆(kglheap6)的?游標(biāo)數(shù)s.open_versions,--打開(kāi)的?游標(biāo)數(shù)/doc/71fb112d0722192e4536f6f2.htmlers_opening,--打開(kāi)這些?游標(biāo)的?戶數(shù)s.fetches,--sql語(yǔ)句的fetch數(shù)s.executions,--所有?游標(biāo)的執(zhí)?這條語(yǔ)句次數(shù)s.px_servers_executions,s.end_of_fetch_count,/doc/71fb112d0722192e4536f6f2.htmlers_executing,--通過(guò)?游標(biāo)執(zhí)?這條語(yǔ)句的?戶數(shù)s.loads,--語(yǔ)句被載?和重載?的次數(shù)s.first_load_time,--語(yǔ)句被第?次載?的時(shí)間戳s.invalidations,--所有?游標(biāo)的?效次數(shù)s.parse_calls,--所有?游標(biāo)對(duì)這條語(yǔ)句的解析調(diào)?次數(shù)s.disk_reads,--所有?游標(biāo)運(yùn)?這條語(yǔ)句導(dǎo)致的讀磁盤次數(shù)s.direct_writes,s.buffer_gets,--所有?游標(biāo)運(yùn)?這條語(yǔ)句導(dǎo)致的讀內(nèi)存次數(shù)s.application_wait_time,s.concurrency_wait_time,s.cluster_wait_time,/doc/71fb112d0722192e4536f6f2.htmler_io_wait_time,s.plsql_exec_time,

s.java_exec_time,s.rows_processed,--這條語(yǔ)句處理的總記錄?數(shù)/doc/71fb112d0722192e4536f6f2.htmlmand_type,--oracles.optimizer_mode,--執(zhí)?這條的優(yōu)化器模型s.optimizer_cost,命令類型代號(hào)s.optimizer_env,s.optimizer_env_hash_value,s.parsing_user_id,--第?次解析這條語(yǔ)句的?戶的ids.parsing_schema_id,--第?次解析這條語(yǔ)句所?的schema的ids.parsing_schema_name,s.kept_versions,--所有被dbms_shared_pool包標(biāo)識(shí)為保持(keep)狀態(tài)的?游標(biāo)數(shù)s.address,--指向語(yǔ)句的地址s.hash_value,--這條語(yǔ)句在librarycache中hash值s.old_hash_value,s.plan_hash_value,s.module,--在第?次解析這條語(yǔ)句是通過(guò)調(diào)?dbms_application_info.set_module設(shè)置的模塊名稱s.module_hash,--模塊的hash值s.action,--在第?次解析這條語(yǔ)句是通過(guò)調(diào)?dbms_application_info.set_action設(shè)置的動(dòng)作名稱s.action_hash,--動(dòng)作的hash值s.serializable_aborts,--所有?游標(biāo)的事務(wù)?法序列化的次數(shù),這會(huì)導(dǎo)致ora-08177錯(cuò)誤s.outline_category,s.cpu_time,s.elapsed_time,s.outline_sid,/doc/71fb112d0722192e4536f6f2.htmlst_active_child_address,s.remote,s.object_status,s.literal_hash_value,/doc/71fb112d0722192e4536f6f2.htmlst_load_time,s.is_obsolete,--游標(biāo)是否被廢除(y或n)。當(dāng)?游標(biāo)數(shù)太多了時(shí)可能會(huì)發(fā)?s.child_latch,--包含此游標(biāo)的?latch數(shù)s.sql_profile,gram_id,gram_line#,s.exact_matching_signature,s.force_matching_signature,/doc/71fb112d0722192e4536f6f2.htmlst_active_time,s.bind_dataFROMv$sqlareas;查看當(dāng)前會(huì)話所執(zhí)?的語(yǔ)句以及會(huì)話相關(guān)信息:selecta.sid||'.'||a.SERIAL#,/doc/71fb112d0722192e4536f6f2.htmlername,a.TERMINAL,gram,s.sql_textfromv$sessiona,v$sqlareaswherea.sql_address=s.address(+)anda.sql_hash_value=s.hash_value(+)orderby/doc/71fb112d0722192e4536f6f2.htmlername,a.sid;1.5v$sql_plan:視圖V$SQL_PLAN包含了librarycache中所有游標(biāo)的執(zhí)?計(jì)劃。SELECTp.address,--當(dāng)前cursor?句柄位置p.hash_value,--在librarycache中?語(yǔ)句的hash值p.operation,--在各步驟執(zhí)?內(nèi)部操作的名稱,例如:tableaccessp.options,--描述列operation在操作上的變種,例如:fullp.object_node,--?于訪問(wèn)對(duì)象的數(shù)據(jù)庫(kù)鏈接databaselink的名稱對(duì)于使?并?執(zhí)?的本地查詢?cè)摿心軌蛎枋霾僮髦休敵龅拇涡騪.object#,--表或索引對(duì)象數(shù)量p.object_owner,--對(duì)于包含有表或索引的架構(gòu)schema給出其所有者的名稱

p.object_name,--表或索引名p.optimizer,--執(zhí)?計(jì)劃中?列的默認(rèn)優(yōu)化模式p.id,--在執(zhí)?計(jì)劃中分派到每?步的序號(hào)p.parent_id,--對(duì)id步驟的輸出進(jìn)?操作的下?個(gè)執(zhí)?步驟的idp.depth,--業(yè)務(wù)樹(shù)深度(或級(jí))。p.cost,--cost-based?式優(yōu)化的操作開(kāi)銷的評(píng)估,如果語(yǔ)句使?rule-based?式,本列將為空p.cardinality,--根據(jù)cost-based?式操作所訪問(wèn)的?數(shù)的評(píng)估p.bytes,--根據(jù)cost-based?式操作產(chǎn)?的字節(jié)的評(píng)估p.other_tag,--其它列的內(nèi)容說(shuō)明p.partition_start,--范圍存取分區(qū)中的開(kāi)始分區(qū)p.partition_stop,--范圍存取分區(qū)中的停?分區(qū)p.partition_id,--計(jì)算partition_start和partition_stop這對(duì)列值的步數(shù)p.other,--其它信息即執(zhí)?步驟細(xì)節(jié),供?戶參考p.distribution,--為了并?查詢,存儲(chǔ)?于從?產(chǎn)服務(wù)器到消費(fèi)服務(wù)器分配列的?法p.cpu_cost,--根據(jù)cost-based?式cpu操作開(kāi)銷的評(píng)估。如果語(yǔ)句使?rule-based?式,本列為空p.io_cost,--根據(jù)cost-based?式i/o操作開(kāi)銷的評(píng)估。如果語(yǔ)句使?rule-based?式,本列為空p.temp_space,--ost-based?式操作(sortorhash-join)的臨時(shí)空間占?評(píng)估。如果語(yǔ)句使?rule-based?式,本列為空p.access_predicates,--指明以便在存取結(jié)構(gòu)中定位列,例如,在范圍索引查詢中的開(kāi)始或者結(jié)束位置p.filter_predicates,--在?成數(shù)據(jù)之前即指明過(guò)濾列FROMv$sql_planp;通過(guò)結(jié)合v$sqlarea可以查出librarycache中所有語(yǔ)句的查詢計(jì)劃。先從v$sqlarea中得到語(yǔ)句的地址,然后在由v$sql_plan查出它的查詢計(jì)劃:SELECTLPAD('',2*(level-1))||operation"Operation",options"Options",DECODE(to_char(id),'0','Cost='||nvl(to_char(position),'n/a'),object_name)"ObjectName",optimizerFROMv$sql_planaSTARTWITHaddress='4F6E452C'ANDid=0CONNECTBYPRIORid=a.parent_idANDPRIORa.address=a.addressANDPRIORa.hash_value=a.hash_value;2、查看??--查看共享池各參數(shù)SELECTname,(bytes)/1024/1024aFROMv$sgastatWHEREpool='sharedpool'ORDERBYaDESC;--查看SharedPoolSize??selectname,bytes/1024/1024fromv$sgainfoWHEREname='SharedPoolSize';注:區(qū)分共享池與SharedPoolSize(SharedPoolSize只是共享的??部分)3、修改共的??:ALTERSYSTEMSETSHARED_POOL_SIZE=320M;4、共享池包含的組件庫(kù)?速緩存;數(shù)據(jù)字典?速緩存;?于保存共享服務(wù)器連接?戶全局區(qū)(UGA),只在共享服務(wù)器配置下有。4.1庫(kù)?速緩存存儲(chǔ)SQL語(yǔ)句或PL/SQL塊4.1.1相關(guān)視圖v$librarycache視圖這個(gè)視圖包含了關(guān)于librarycache的性能統(tǒng)計(jì)信息,對(duì)于共享池的性能調(diào)優(yōu)很有幫助。SELECT/doc/71fb112d0722192e4536f6f2.htmlspace,--librarycache的命名空間l.gets,--請(qǐng)求GET該命名空間中對(duì)象的次數(shù)l.gethits,--請(qǐng)求GET并在內(nèi)存中找到了對(duì)象句柄的次數(shù)(鎖定命中)l.gethitratio,--請(qǐng)求GET的命中率l.pins,--讀取或執(zhí)?該命名中對(duì)象的次數(shù)l.pinhits,--庫(kù)對(duì)象的所有元數(shù)據(jù)在內(nèi)存中被找到的次數(shù)(pin命中)

l.pinhitratio,--Pin命中率l.reloads,--Pin請(qǐng)求需要從磁盤中載?對(duì)象的次數(shù)l.invalidations,--命名空間中的?法對(duì)象(由于依賴的對(duì)象被修改所導(dǎo)致)數(shù)l.dlm_lock_requests,--GET請(qǐng)求導(dǎo)致的實(shí)例鎖的數(shù)量l.dlm_pin_requests,--PIN請(qǐng)求導(dǎo)致的實(shí)例鎖的數(shù)量l.dlm_pin_releases,--請(qǐng)求釋放PIN鎖的次數(shù)l.dlm_invalidation_requests,--GET請(qǐng)求?法實(shí)例鎖的次數(shù)l.dlm_invalidations--從其他實(shí)例那的得到的?法pin數(shù)FROMv$librarycachel;v$library_cache_memory視圖selecta.lc_namespace,--Librarycache命名空間a.lc_inuse_memory_objects,--存在與庫(kù)?速緩存的對(duì)象數(shù)?a.lc_inuse_memory_size,--存在庫(kù)?速緩存對(duì)象??(M)a.lc_freeable_memory_objects,--空閑的庫(kù)?速緩存數(shù)量a.lc_freeable_memory_size--空閑的庫(kù)?速緩存??fromv$library_cache_memorya;通過(guò)此視圖可了解?前在庫(kù)?速緩存中的對(duì)象及可繼續(xù)存放的數(shù)?。4.1.2查看庫(kù)緩存的命中率selectsum(pinhits)/sum(pins)fromv$librarycache;select(sum(pins-reloads))/sum(pins)"Librarycache"fromv$librarycache;--當(dāng)命中率?于99%或未命中率?于1%時(shí),說(shuō)明系統(tǒng)中硬解析過(guò)多,要做系統(tǒng)優(yōu)化(增加SharedPool、使?綁定變量、修改cursor_sharing等措施。考慮了reloads注:I)不能單看庫(kù)?速緩存命中率的??,結(jié)合v$librarycache中的reloads來(lái)分析。如果reloads值?較?,表明許多sql語(yǔ)句在?化退出后?被重新裝?庫(kù)池。若sql語(yǔ)句是因?yàn)闆](méi)有使?綁定變量導(dǎo)致reloads值變?,可修改該sql采?綁定變量的?式;若sql語(yǔ)句?法使?綁定變量,則可考慮將sql語(yǔ)句?dbms_shared_pool中的keep過(guò)程將需要釘在庫(kù)池中的對(duì)象釘住sys.dbms_shared_pool.keep(name=>,flag=>)--Name是需要固定的對(duì)象的名稱,flag是要固定的對(duì)象的類型II)dbms_shared_pool說(shuō)明:,?unkeep過(guò)程釋放。1)默認(rèn)下該包沒(méi)安裝,可利?$ORACLE_HOME/rdbms/admin?錄下的dbmspool.sql腳本來(lái)安裝(sys??),其他?戶需要sys?戶授權(quán)后才可使?。2)對(duì)于固定在共享池中的對(duì)象,當(dāng)共享池空間不?的時(shí)候,ORACLE不會(huì)釋放這些對(duì)象以獲取創(chuàng)建新的項(xiàng)?所需要的空間,甚?刷新共享池的時(shí)候,這些對(duì)象也不會(huì)被清除。3)dbms_shared_pool包的keep和unkeep過(guò)程中的flag的取值:Ppackage/procedure/functionQsequenceRtriggerTtypeJSjavasourceJCjavaclassJRjavaresourceJDjavashareddataCCURSOR固定SQL的keep?例:dbms_shared_pool.keep('address,hash_value','C'),其中SQL語(yǔ)句的ADDRESS和HASH_VALUE可以在V$SQLAREA中找到;對(duì)于函數(shù)、過(guò)和?例如下:dbms_shared_pool.keep('name','P')。注:如果采?該過(guò)程將程序固定到共享池后,刷新緩沖區(qū)(altersystemflushshared_pool)也不會(huì)清除,必須使?unkeep過(guò)程清除。

4.1.3調(diào)優(yōu)庫(kù)?速緩存優(yōu)化庫(kù)?速緩存的?的是重?以前分析過(guò)的或執(zhí)?過(guò)的代碼。最簡(jiǎn)單的?法就是使?綁定變量,減少硬分析。游標(biāo)共享cursor_sharing參數(shù)的使?,使之使?綁定變量cursor_sharing參數(shù)有三個(gè)值:SIMILAR:只在認(rèn)為綁定變量不會(huì)對(duì)優(yōu)化產(chǎn)?負(fù)?影響時(shí)才使?綁定變量。FORCE:強(qiáng)制在所有情況下使?綁定變量。EXACT:默認(rèn)情況下為該值ORACLE建議使?CURSOR_SHARING=SIMILAR際上CURSOR_SHARING=FORCE,因?yàn)槭?CURSOR_SHARING=FORCE有可能使執(zhí)?計(jì)劃變壞。但實(shí)對(duì)執(zhí)?計(jì)劃的好處要遠(yuǎn)遠(yuǎn)?于壞處。在觀察到由于不使?綁定變量?導(dǎo)致?量硬分析時(shí),通過(guò)把默認(rèn)的CURSOR_SHARING=EXACT改成CURSOR_SHARING=FORCE可極?的改善性能??稍趇nit.ora或spfile中更改這個(gè)參數(shù),也可使?altersystem或altersession動(dòng)態(tài)的執(zhí)?更改。硬分析語(yǔ)句的查詢與改進(jìn)查看硬分析語(yǔ)句selects.sid,s.value"executecounts",t.value"hardparse"fromv$sesstats,v$sesstattwheres.sid=t.sidands.statistic#in(selectstatistic#fromv$statnamewherename='executecount')andt.statistic#in(selectstatistic#fromv$statnamewherename='parsecount(hard)')orderbyt.valuedesc;將硬分析語(yǔ)句采?綁定變量?式或者直接將該sql固定到緩存中。減少軟分析,降低庫(kù)?速緩存閂鎖爭(zhēng)通過(guò)以下措施可將軟分析保持為最低:1)設(shè)置?SESSION_CACHED_CURSORSSESSION_CACHED_CURSORS,就是的是?個(gè)session可以緩存多少個(gè)cursor,讓后續(xù)相同的SQL語(yǔ)句不再打開(kāi)游標(biāo),從?避免軟解析的過(guò)程來(lái)提?性能。(綁定變量是解決硬解析的問(wèn)題),軟解析同硬析?樣,?較消耗資源.所以這個(gè)參數(shù)?常重要。當(dāng)?個(gè)cursor關(guān)閉之后,oracle會(huì)檢查這個(gè)cursor的request次數(shù)是否超過(guò)3次,如果超過(guò)了三次,就會(huì)放?sessioncursorcachelist的MRU端,這樣在下次打算parse?個(gè)sql時(shí),它會(huì)先去pga內(nèi)搜索sessioncursorcachelist,如果找到那么會(huì)把這個(gè)cursor脫離list,然后當(dāng)關(guān)閉的時(shí)候再把這個(gè)cursor加到MRU端.session_cached_cursor提供了快速軟分析的功能,供了?softparse更?的性能。sessioncursorcache的管理也是使?LRU。session_cached_cursors這個(gè)參數(shù)是控制sessioncursorcache的??的。session_cached_cursors定義了sessioncursorcache中存儲(chǔ)的cursor的個(gè)數(shù)。這個(gè)值越?,則會(huì)消耗的內(nèi)存越多。另外檢查這個(gè)參數(shù)是否設(shè)置的合理,可以從兩個(gè)statistic來(lái)檢查。SQL>selectname,valuefromv$sysstatwherenamelike'%cursor%';NAMEVALUE--------------------------------------------------------------------------openedcursorscumulative17889openedcursorscurrent34sessioncursorcachehits16481sessioncursorcachecount777cursorauthentications294SQL>selectname,valuefromv$sysstatwherenamelike'%parse%';NAMEVALUE--------------------------------------------------------------------------parsetimecpu331parsetimeelapsed2021parsecount(total)12134parsecount(hard)1355parsecount(failures)3sessioncursorcachehits和parsecount(total)就是總的parse次數(shù)中,在sessioncursorcache中找到的次數(shù),所占?例越

?,性能越好。如果?例?較低,并且有剩余內(nèi)存的話,可以考慮加?該參數(shù)。Oracle9i及以前,該參數(shù)缺省是0,10G上缺省是20。open_cursors是充許打開(kāi)的游標(biāo)的數(shù)量session_cached_cursors是充許放?緩存的游標(biāo)的數(shù)量2)在應(yīng)?程序預(yù)編譯器中設(shè)置HOLD_CURSORHOLD_CURSOR=YES|NO;缺省值為NO。當(dāng)執(zhí)?SQL操縱語(yǔ)句時(shí),其相關(guān)的光標(biāo)被連到光標(biāo)?速緩沖存儲(chǔ)器中的?項(xiàng)上,該項(xiàng)?被依次連接到ORACLE專?的SQL區(qū)域上,該區(qū)域存儲(chǔ)處理該語(yǔ)句所需的信息。當(dāng)HOLD_CURSOR=NO時(shí),在ORACLE執(zhí)?完SQL語(yǔ)句或關(guān)閉光標(biāo)后,預(yù)編譯程序直接撤去該鏈,釋放分析塊和分配給專?SQL區(qū)域的內(nèi)存,并把該鏈標(biāo)為可再使?。這時(shí)另?個(gè)SQL語(yǔ)句就?可使?該鏈來(lái)指向光標(biāo)?速緩沖存儲(chǔ)器的項(xiàng)了。當(dāng)HOLD_CURSOR=YES時(shí),該鏈被保留,預(yù)編譯程序不再使?它。這對(duì)經(jīng)常使?的SQL語(yǔ)句是有?的。(默認(rèn)no),HOLD_CURSOR=yes(默認(rèn)為no),當(dāng)ORACLE執(zhí)?完SQL語(yǔ)句,為private如果RELEASE_CURSOR=noSQLAREA分配的內(nèi)存空間被保留,cursor和privateSQLAREA之間的link也被保留,預(yù)編譯程序不再使?它,同樣可以通過(guò)這個(gè)指針直接在privateSQLAREA獲得語(yǔ)句。注意:RELEASE_CURSOR=YES優(yōu)先于HOLD_CURSOR=YES;HOLD_CURSOR=NO優(yōu)先于RELEASE_CURSOR=NO。3)設(shè)置CURSOR_SPACE_FOR_TIME默認(rèn)為false廢棄該參數(shù)本意是通過(guò)設(shè)置為true可以保證游標(biāo)在關(guān)閉前不能重新分配游標(biāo)。但是注意,該參數(shù)已廢棄。修改share_pool??查看庫(kù)緩存命中率??,若??,可試著加?share_pool。4.2數(shù)據(jù)字典緩沖區(qū)--查看數(shù)據(jù)字典緩沖區(qū)的使?率(應(yīng)該在90%以上,否則需要增加共享池的??)select(sum(gets-getmisses-usage-fixed))/sum(gets)"Datadictionarycache"fromv$rowcache;?、數(shù)據(jù)緩沖區(qū)showparameterdb_cache_size--修改?些DB_CACHE相關(guān)參數(shù)altersystemsetdb_cache_size=100m;--默認(rèn)池(所有段塊?般都在這個(gè)池)altersystemsetdb_keep_cache_size=12m;--保持池訪問(wèn)?常頻繁的段可放置該池,防?在回收池(訪問(wèn)很隨機(jī)的?段?般可放于該池)池?化)altersystemsetdb_recycle_cace_size=16m;----查看db_cache命中率selectname,valuefromv$sysstatwherenamein('dbblockgetsfromcache','consistentgetsfromcache','physicalreadscache');db_cache命中率算法db_cache命中率=1-(physicalreadscache/(dbblockgetsfromcache+consistentgetsfromcache))--命中率應(yīng)該在90%以上,否則需要增加數(shù)據(jù)緩沖區(qū)的??--采?v$buffer_pool_statistics視圖推導(dǎo)緩沖區(qū)?速緩存的命中率SELECTname,physical_reads,db_block_gets,consistent_gets,1-(physical_reads/(db_block_gets+consistent_gets))HitratioFROMv$buffer_pool_statistics;--v$db_cache_advice視圖?于建議緩沖區(qū)?速緩存設(shè)置SELECTsize_for_estimate"size",

buffers_for_estimate"buffers",estd_physical_read_factor"read_factor",estd_physical_reads"reads"FROMv$db_cache_adviceWHERENAME='DEFAULT'ANDblock_size=(SELECTVALUEFROMv$parameterWHERENAME='db_block_size');注:對(duì)于常?的?表可以將其保存在keep池,這樣就不會(huì)因?yàn)榫彌_區(qū)滿?被清出。altertabletable_namestorage(buffer_poolkeep)。三、重做?志緩沖區(qū)RedoLogBuffer是SGA中?段保存數(shù)據(jù)庫(kù)修改信息的緩存。這些信息被存儲(chǔ)在重做條?(RedoEntry)中.重做條?中包含了由于INSERT、UPDATE、DELETE、CREATE、ALTER或DROP所做的修改操作?需要對(duì)數(shù)據(jù)庫(kù)重新組織或重做的必須信息。在必要時(shí),重做條?還可以?于數(shù)據(jù)庫(kù)恢復(fù)。重做條?是Oracle數(shù)據(jù)庫(kù)進(jìn)程從?戶內(nèi)存中拷貝到RedoLogBuffer中去的。重做條?在內(nèi)存中是連續(xù)相連的。后臺(tái)進(jìn)程LGWR負(fù)責(zé)將RedoLogBuffer中的信息寫?到磁盤上活動(dòng)的重做?志?件(RedoLogFile)或?件組中去的。參數(shù)LOG_BUFFER決定了RedoLogBuffer的??。它的默認(rèn)值是512K(?般這個(gè)??都是?夠的),最?可以到4G。當(dāng)系統(tǒng)中存在很多的?事務(wù)或者事務(wù)數(shù)量?常多時(shí),可能會(huì)導(dǎo)致?志?件IO增加,降低性能。這時(shí)就可以考慮增加LOG_BUFFER。但是,RedoLogBuffer的實(shí)際??并不是LOB_BUFFER的設(shè)定??。為了保護(hù)RedoLogBuffer,oracle為它增加了保護(hù)頁(yè)(?般為11K):SQL>showparameterlog_bufferNAMETYPEVALUE-----------------------------------------------------------------------------log_bufferinteger7024640SQL>select*fromv$sgastatwherename=

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論