版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
學(xué)習(xí)動態(tài)性能表
第一篇"v$sysstat2007.5.23
按照OracleDocument中的描述,v$sysstat存儲自數(shù)據(jù)庫實(shí)例運(yùn)行那刻起就開始
累計(jì)全實(shí)例(instance-wide的資源使用情況。
類似于v$sesstat,該視圖存儲下列的統(tǒng)計(jì)信息:
1>.事件發(fā)生次數(shù)的統(tǒng)計(jì)(如:usercommits
2〉.數(shù)據(jù)產(chǎn)生,存取或者操作的total列(如:redosize
3>.如果TIMED_STATISTICS值為true,則統(tǒng)計(jì)花費(fèi)在執(zhí)行操作上的總時(shí)間
(如:CPUusedbythissession
v$sysstat視圖常用列介紹:
?STATISTIC#:標(biāo)識
?NAME:統(tǒng)計(jì)項(xiàng)名稱
?VALUE:資源使用量
該視圖還有一列class-統(tǒng)計(jì)類別但極少會被使用,各類信息如下:
1代表事例活動
2代表Redobuffer活動
4代表鎖
8代表數(shù)據(jù)緩沖活動
16代表OS活動
32代表并行活動
64代表表訪問
128代表調(diào)試信息
注意Statistic#的值在不同版本中各不相同,使用時(shí)要用Name做為查詢條件而
不要以statistic#的值做為條件。
使用v$sysstat中的數(shù)據(jù)
該視圖中數(shù)據(jù)常被用于監(jiān)控系統(tǒng)性能。如buffercache命中率、軟解析率等都
可從該視圖數(shù)據(jù)計(jì)算得出。
該視圖中的數(shù)據(jù)也被用于監(jiān)控系統(tǒng)資源使用情況,以及系統(tǒng)資源利用率的變
化。正因如此多的性能數(shù)據(jù),檢查某區(qū)間內(nèi)系統(tǒng)資源使用情況可以這樣做,在一個(gè)
時(shí)間段開始時(shí)創(chuàng)建一個(gè)視圖數(shù)據(jù)快照,結(jié)束時(shí)再創(chuàng)建一個(gè),二者之間各統(tǒng)計(jì)項(xiàng)值的不
同(endvalue-beginvalue即是這一時(shí)間段內(nèi)的資源消耗情況。這是oracle工具的
常用方法,諸如Statspack以及BSTAT/ESTAT都是如此。
為了對比某個(gè)區(qū)間段的數(shù)據(jù),源數(shù)據(jù)可以被格式化(每次事務(wù),每次執(zhí)行,每秒鐘
或每次登陸,格式化后數(shù)據(jù)更容易從兩者中鑒別出差異。這類的對比在升級前,升級
后或僅僅想看看一段時(shí)間內(nèi)用戶數(shù)量增長或數(shù)據(jù)增加如何影響資源使用方面更加
實(shí)用。
你也可以使用v$sysstat數(shù)據(jù)通過查詢v$system_event視圖來檢查資源消耗和
資源回收。
V$SYSSTAT中的常用統(tǒng)計(jì)
V$SYSSTAT中包含多個(gè)統(tǒng)計(jì)項(xiàng),這部分介紹了一些關(guān)鍵的v$sysstat統(tǒng)計(jì)項(xiàng),在
調(diào)優(yōu)方面相當(dāng)有用。下列按字母先后排序:
數(shù)據(jù)庫使用狀態(tài)的一些關(guān)鍵指標(biāo):
?CPUusedbythissession:所有session的cpu占用量,不包括后臺進(jìn)程。這項(xiàng)統(tǒng)
計(jì)的單位是百分之x秒.完全調(diào)用一次不超過10ms
?dbblockchanges:那部分造成SGA中數(shù)據(jù)塊變化的insert,update或delete操作
數(shù)這項(xiàng)統(tǒng)計(jì)可以大概看出整體數(shù)據(jù)庫狀態(tài)。在各項(xiàng)事務(wù)級別,這項(xiàng)統(tǒng)計(jì)指出臟緩存
比率。
?executecount:執(zhí)行的sql語句數(shù)量(包括遞歸sql
?logonscurrent:當(dāng)前連接到實(shí)例的Sessions。如果當(dāng)前有兩個(gè)快照則取平均
值。?logonscumulative:自實(shí)例啟動后的總登陸次數(shù)。
?parsecount(hard:在sharedpool中解析調(diào)用的未命中次數(shù)。當(dāng)sql語句執(zhí)行并
且該語句不在sharedpool或雖然在sharedpool但因?yàn)閮烧叽嬖诓糠植町惗荒鼙?/p>
使用時(shí)產(chǎn)生硬解析。如果一條sql語句原文與當(dāng)前存在的相同,但查詢表不同則認(rèn)
為它們是兩條不同語句,則硬解析即會發(fā)生。硬解析會帶來cpu和資源使用的高昂
開銷,因?yàn)樗枰猳racle在sharedpool中重新分配內(nèi)存,然后再確定執(zhí)行計(jì)劃,最終語
句才會被執(zhí)行。
?parsecount(tota上解析調(diào)用總數(shù),包括軟解析和硬解析。當(dāng)session執(zhí)行了一條
sql語句,該語句已經(jīng)存在于sharedpool并且可以被使用則產(chǎn)生軟解析。當(dāng)語句被
使用(即共享所有數(shù)據(jù)相關(guān)的現(xiàn)有sql語句(如最優(yōu)化的執(zhí)行計(jì)劃必須同樣適用于
當(dāng)前的聲明。這兩項(xiàng)統(tǒng)計(jì)可被用于計(jì)算軟解析命中率。
?parsetimecpu:總cpu解析時(shí)間(單位:10ms。包括硬解析和軟解析。
?parsetimeelapsed:完成解析調(diào)用的總時(shí)間花費(fèi)。
?physicalreads:OSblocksread數(shù)。包括插入到SGA緩存區(qū)的物理讀以及PGA
中的直讀這項(xiàng)統(tǒng)計(jì)并非V。請求數(shù)。
?physicalwrites:從SGA緩存區(qū)被DBWR寫到磁盤的數(shù)據(jù)塊以及PGA進(jìn)程直
寫的數(shù)據(jù)塊數(shù)量。
?redologspacerequests:在redologs中服務(wù)進(jìn)程的等待空間,表示需要更長時(shí)間
的logswitch。
?redosize:redo發(fā)生的總次數(shù)(以及因此寫入logbuffer,以byte為單位。這項(xiàng)統(tǒng)
計(jì)顯示出update活躍性。
?sessionlogicalreads:邏輯讀請求數(shù)。
?sorts(memoryandsorts(disk:sorts(memory是適于在SORT_AREA_SIZE(因此
不需要在磁盤進(jìn)行排序的排序操作的數(shù)量。sorts(disk則是由于排序所
需空間太大,SORT_AREA_SIZE不能滿足而不得不在磁盤進(jìn)行排序操作的數(shù)
量。這兩項(xiàng)統(tǒng)計(jì)通常用于計(jì)算in-memorysortratioo
?sorts(rows:列排序總數(shù)。這項(xiàng)統(tǒng)計(jì)可被'sorts(total統(tǒng)計(jì)項(xiàng)除盡以確定每次排
序的列。該項(xiàng)可指出數(shù)據(jù)卷和應(yīng)用特征。
?tablefetchbyrowid:使用ROWID返回的總列數(shù)(由于索弓I訪問或sql語句中
使用了'whererowid=&rowid'而產(chǎn)生
?tablescans(rowsgotten:全表掃描中讀取的總列數(shù)
?tablescans(blocksgotten:全表掃描中讀取的總塊數(shù),不包括那些split的列。
?usercommits+userrollbacks:系統(tǒng)事務(wù)起用次數(shù)。當(dāng)需要計(jì)算其它統(tǒng)計(jì)中每
項(xiàng)事務(wù)比率
時(shí)該項(xiàng)可以被做為除數(shù)。例如,計(jì)算事務(wù)中邏輯讀,可以使用下列公式:session
logicalreads/(usercommits+userrollbackso
注SQL語句的解析有軟解析softparse與硬解析hardparse之說,以下是5個(gè)步
驟:1:語法是否合法(sql寫法
2:語義是否合法(權(quán)限,對象是否存在
3:檢查該sql是否在共享池中存在
-如果存在,直接跳過4和5,運(yùn)行sql.此時(shí)算softparse
4:選擇執(zhí)行計(jì)劃
5:產(chǎn)生執(zhí)行計(jì)劃
-如果5個(gè)步驟全做,這就叫hardparse.
注意物理I/O
oracle報(bào)告物理讀也許并未導(dǎo)致實(shí)際物理磁盤I/O操作。這完全有可能因?yàn)槎?/p>
數(shù)操作系統(tǒng)都有緩存文件,可能是那些塊在被讀取。塊也可能存于磁盤或控制級緩
存以再次避免實(shí)際I/。。Oracle報(bào)告有物理讀也許僅僅表示被請求的塊并不在緩存
中。
由V$SYSSTAT得出實(shí)例效率比(InstanceEfficiencyRatios
下列是些典型的instanceefficiencyratios由v$sysstat數(shù)據(jù)計(jì)算得來,每項(xiàng)比率
值應(yīng)該盡可能接近1:
?Buffercachehitratio:該項(xiàng)顯示buffercache大小是否合適。
公式:1-((physicalreads-physicalreadsdirect-physicalreadsdirect(lob/session
logicalreads執(zhí)行:
select1-((a.value-b.value-c.value/d.value
fromv$sysstata,v$sysstatb,v$sysstatc,v$sysstatd
where='physicalreads'and
=,physicalreadsdirect'and
='physicalreadsdirect(lob'and
='sessionlogicalreads*;
?Softparseratio:這項(xiàng)將顯示系統(tǒng)是否有太多硬解析。該值將會與原始統(tǒng)計(jì)數(shù)據(jù)
對比以確保精確。例如,軟解析率僅為0.2則表示硬解析率太高。不過,如果總解析
量(parsecounttotal偏低,這項(xiàng)值可以被忽略。
公式:1-(parsecount(hard/parsecount(total
執(zhí)行:
select1-(a.value/b.value
fromv$sysstata,v$sysstatb
Wherea.name=,parsecount(hard'andb.name=,parsecount(total*;
?In-memorysortratio:該項(xiàng)顯示內(nèi)存中完成的排序所占比例。最理想狀態(tài)下,在
OLTP系統(tǒng)中,大部分排序不僅小并且能夠完全在內(nèi)存里完成排序。
公式:sorts(memory/(sorts(memory+sorts(disk
執(zhí)行:
selecta.value/(b.value+c.value
fromv$sysstata,v$sysstatb,v$sysstatc
where=,sorts(memory'and
='sorts(memory*andc.name=*sorts(disk,;
?Parsetoexecuteratio:在生產(chǎn)環(huán)境,最理想狀態(tài)是一條sql語句一次解析多數(shù)運(yùn)
行。公式:1-(parsecount/executecount
執(zhí)行:
select1-(a.value/b.value
fromv$sysstata,v$sysstatb
where='parsecount(totaFand='executecount;
?ParseCPUtototalCPUratio:該項(xiàng)顯示總的CPU花費(fèi)在執(zhí)行及解析上的比
率。如果這項(xiàng)比率較低,說明系統(tǒng)執(zhí)行了太多的解析。
公式:1-(parsetimecpu/CPUusedbythissession
執(zhí)行:
select1-(a.value/b.value
fromv$sysstata,v$sysstatb
where='parsetimecpu'and
='CPUusedbythissession*;
?ParsetimeCPUtoparsetimeelapsed:通常,該項(xiàng)顯示鎖競爭比率。這項(xiàng)比率計(jì)
算是否時(shí)間花費(fèi)在解析分配給CPU進(jìn)行周期運(yùn)算(即生產(chǎn)工作。解析時(shí)間花費(fèi)不
在CPU周期運(yùn)算通常表示由于鎖競爭導(dǎo)致了時(shí)間花費(fèi)
公式:parsetimecpu/parsetimeelapsed
執(zhí)行:
selecta.value/b.value
fromv$sysstata,v$sysstatb
where='parsetimecpu'and=,parsetimeelapsed*;從V$SYSSTAT
獲取負(fù)載間檔(LoadProfile數(shù)據(jù)
負(fù)載間檔是監(jiān)控系統(tǒng)吞吐量和負(fù)載變化的重要部分,該部分提供如下每秒和每
個(gè)事務(wù)的統(tǒng)計(jì)信息:logonscumulative,parsecount(total,parsecount(hard,executes,
physicalreads,physicalwrites,blockchanges,andredosize.
被格式化的數(shù)據(jù)可檢查‘rates,是否過高,或用于對比其它基線數(shù)據(jù)設(shè)置為識別
systemprofile在期間如何變化。例如,計(jì)算每個(gè)事務(wù)中blockchanges可用如下公式:
dbblockchanges/(usercommits+userrollbacks
執(zhí)行:
selecta.value/(b.value+c.value
fromv$sysstata,v$sysstatb,v$sysstatc
where='dbblockchangesfand
='usercommits*andc.name='userrollbacks1;
其它計(jì)算統(tǒng)計(jì)以衡量負(fù)載方式,如下:
?Blockschangedforeachread:這項(xiàng)顯示出blockchanges在blockreads中的比
例。它將指出是否系統(tǒng)主要用于只讀訪問或是主要進(jìn)行諸多數(shù)據(jù)操作
(如:inserts/updates/deletes公式:dbblockchanges/sessionlogicalreads
執(zhí)行:
selecta.value/b.value
fromv$sysstata,v$sysstatb
where='dbblockchanges'and
='sessionlogicalreads*;
?Rowsforeachsort:
公式:sorts(rows/(sorts(memory+sorts(disk
執(zhí)行:
selecta.value/(b.value+c.value
fromv$sysstata,v$sysstatb,v$sysstatc
where=,sorts(rows'and
='sorts(memory*andc.name=*sorts(disk,;
學(xué)習(xí)動態(tài)性能表
第二篇-(l-v$sesstat2007.5.25
按照OracleOnlineBook中的描述,v$sesstat存儲session從login到logout的詳
細(xì)資源使用統(tǒng)計(jì)。
類似于v$sysstat,該視圖存儲下列類別的統(tǒng)計(jì):
?事件發(fā)生次數(shù)的統(tǒng)計(jì),如用戶提交數(shù)。
?數(shù)據(jù)產(chǎn)生,存取或者操作的total歹[I(如:redosize
?執(zhí)行操作所花費(fèi)的時(shí)間累積,例如sessionCPU占用(如果
TIMED_STATISTICS值為true
注意:
如果初始參數(shù)STATISTICS_LEVEL被設(shè)置為TYPICAL或ALL,時(shí)間統(tǒng)計(jì)被
數(shù)據(jù)庫自動收集如果STATISTICS_LEVEL被設(shè)置為BASIC,你必須設(shè)置
TIMED_STATISTICS值為TRUE以打開收集功能。
如果你已設(shè)置了DB_CACHE_ADVICE,TIMED_STATISTICS或
TIMED_OS_STATISTICS,或在初始參數(shù)文件或使用ALTER_SYSTEM或ALTER
SESSION,那么你所設(shè)定的值的值將覆蓋STATISTICS_LEVEL的值。
v$sysstat和v$sesstat差別如下:
□v$sesstat只保存session數(shù)據(jù),而v$sysstat則保存所有sessions的累積值。
Uv$sesstat只是暫存數(shù)據(jù),session退出后數(shù)據(jù)即清空。v$sysstat則是累積的,只
有當(dāng)實(shí)例被shutdown才會清空。
口v$sesstat不包括統(tǒng)計(jì)項(xiàng)名稱,如果要獲得統(tǒng)計(jì)項(xiàng)名稱則必須與v$sysstat或
v$statname連接查詢獲得。
v$sesstat可被用于找出如下類型session:
□高資源占用
」高平均資源占用比(登陸后資源使用率
□默認(rèn)資源占用比(兩快照之間
在V$SESSTAT中使用統(tǒng)計(jì)
多數(shù)v$sesstat中的統(tǒng)計(jì)參考是v$sysstat描述的子集,包括sessionlogicalreads,
CPUusedbythissession,dbblockchanges,redosize,physicalwrites,parsecount(hard,
parsecount(total,sorts(memory,andsorts(disk.
V$SESSTAT常用列說明
USID:session唯一ID
□STATISTIC#:資源唯一ID
□VALUE:資源使用
示例1:下列找出當(dāng)前session中最高的logical和PhysicalI/O比率.
下列SQL語句顯示了所有連接到數(shù)據(jù)庫的session邏輯、物理讀比率(每秒。
logical和physicalI/O比率是通過自登陸后的時(shí)間消耗計(jì)算得出。對于sessions連
接到數(shù)據(jù)庫這種長周期操作而言也許不夠精確,不過做個(gè)示例卻足夠了。
先獲得session邏輯讀和物理讀統(tǒng)計(jì)項(xiàng)的STATISTIC#直
SELECTname,statistic#
FROMV$STATNAME
WHEREnameIN('sessionlogicalreads','physicalreads';
NAMESTATISTIC#
sessionlogicalreads9
physicalreads40
通過上面獲得的STATISTIC#值執(zhí)行下列語句:
SELECTses.sid
,DECODE(ses.action,NULL,'onlineYbatch1"User"
,MAX(DECODE(sta.statistic#,9,sta.value,0
/greatest(3600*24>H(sysdate-ses.logon_tinie,1"LogIO/s"
,MAX(DECODE(sta.statistic#,40,sta.value,0
/greatest(3600*24*(sysdate-ses.logon_time,l"PhyIO/s"
,60*24*(sysdate-ses.logon_time"Minutes"
FROMV$SESSIONses
,V$SESSTATsta
WHEREses.status='ACTIVE1
ANDsta.sid=ses.sid
ANDsta.statistic#IN(9,40
GROUPBYses.sid,ses.action,ses.logon_time
ORDERBY
SUM(DECODE(sta.statistic#,40,lOO*sta.value,sta.value
/greatest(3600*24*(sysdate-ses.logon_time,lDESC;
SIDUserLogIO/sPhyIO/SMinutes
1951batch291257.31
470online6,16162.90
730batch7,56843.2197
2153online1,48298.910
2386batch7,62035.635
1815batch7,50335.526
1965online4,87942.919
1668online4,31844.51
1142online95569.235
1855batch57370.58
1971online1,13856.61
1323online3,26332.45
1479batch2,85735.13
421online1,32246.815
2405online25850.48
示例2:又例如通過v$sesstat和v$statname連接查詢某個(gè)SID各項(xiàng)信息。
selecta.*,
fromv$sesstata,v$statnameb
wherea.sid=10anda.statistic#=b.statistic#;
第二篇-(2-v$mystat2007.6.8
本視圖是v$sesstat的一個(gè)子集,返回當(dāng)前session的統(tǒng)計(jì)項(xiàng)。當(dāng)通過觸發(fā)器審計(jì)
session資源使用,可以使用v$mystat來捕獲資源使用,這將比直接掃描v$sesstat的列
要節(jié)省資源的多。
學(xué)習(xí)動態(tài)性能表
第三篇-(l-v$sql2007.5.25
V$SQL中存儲具體的SQL語句。
一條語句可以映射多個(gè)cursor,因?yàn)閷ο笏傅腸ursor可以有不同用戶(如例
1o如果有多個(gè)cursor(子游標(biāo)存在,在V$SQLAREA為所有cursor提供集合信息。
例1:
這里介紹以卜childcursor
userA:select*fromtbl
userB:select*fromtbl
大家認(rèn)為這兩條語句是不是一樣的啊,可能會有很多人會說是一樣的,但我告訴你不一
定,那為什么呢?
這個(gè)tblA看起來是一樣的,但是不一定哦,一個(gè)是A用戶的,一個(gè)是B用戶的,這時(shí)
他們的執(zhí)行計(jì)劃分析代碼差別可能就大了哦,改下寫法大家就明白了:
select*fromA.tbl
select*fromB.tbl
在個(gè)別cursor上,v$sql可被使用。該視圖包含cursor級別資料。當(dāng)試圖定位
session或用戶以分析cursor時(shí)被使用。
PLAN_HASH_VALUE列存儲的是數(shù)值表示的cursor執(zhí)行計(jì)劃??杀挥脕韺?/p>
比執(zhí)行計(jì)劃。PLAN一HASH一VALUE讓你不必一行一行對比即可輕松鑒別兩條執(zhí)
行計(jì)劃是否相同。
V$SQL中的列說明:
?SQL_TEXT:SQL文本的前1000個(gè)字符
?SHARABLE_MEM:占用的共享內(nèi)存大?。▎挝?byte
?PERSISTENT_MEM:生命期內(nèi)的固定內(nèi)存大?。▎挝?byte
?RUNTIME_MEM:執(zhí)行期內(nèi)的固定內(nèi)存大小
?SORTS:完成的排序數(shù)
?LOADED_VERSIONS:顯示上下文堆是否載入1是0否
?OPEN_VERSIONS:顯示子游標(biāo)是否被鎖,1是0否
?USERSJ3PENING:執(zhí)行語句的用戶數(shù)
?FETCHES:SQL語句的fetch數(shù)。
?EXECUTIONS:自它被載入緩存庫后的執(zhí)行次數(shù)
?USERS_EXECUTING:執(zhí)行語句的用戶數(shù)
?LOADS:對象被載入過的次數(shù)
?FIRST_LOAD_TIME:初次載入時(shí)間
?INVALIDATIONS:無效的次數(shù)
?PARSE_CALLS:解析調(diào)用次數(shù)
?DISK_READS:讀磁盤次數(shù)
?BUFFER_GETS:讀緩存區(qū)次數(shù)
?ROWS_PROCESSED:解析SQL語句返回的總列數(shù)
?COMMANDJYPE:命令類型代號
?OPTIMIZERMODE:SQL語句的優(yōu)化器模型
?OPTIMIZER_COST:優(yōu)化器給出的本次查詢成本
?PARSING_USER_ID:第一個(gè)解析的用戶ID
?PARSING_SCHEMA_ID:第一個(gè)解析的計(jì)劃ID
?KEPT_VERSIONS:指出是否當(dāng)前子游標(biāo)被使用DBMS_SHARED_POOL包標(biāo)
記為常駐內(nèi)存
?ADDRESS:當(dāng)前游標(biāo)父句柄地址
?TYPE_CHK_HEAP:當(dāng)前堆類型檢查說明
?HASH_VALUE:緩存庫中父語句的Hash值
?PLAN_HASH_VALUE:數(shù)值表示的執(zhí)行計(jì)劃。
?CHILDNUMBER:子游標(biāo)數(shù)量
?MODULE:在第一次解析這條語句是通過調(diào)用
DBMS_APPLICATION_INFO.SET_MODULE設(shè)置的模塊名稱。
?ACTION:在第一次解析這條語句是通過調(diào)用
DBMS_APPLICATION」NFO.SET_ACTION設(shè)置的動作名稱。
?SERIALIZABLEABORTS:事務(wù)未能序歹U化次數(shù)
?OUTLINE_CATEGORY:如果outline在解釋cursor期間被應(yīng)用,那么本列將顯
示出outline各類,否則本列為空
?CPU_TIME:解析/執(zhí)行/取得等CPU使用時(shí)間(單位,毫秒
?ELAPSED_TIME:解析/執(zhí)行/取得等消耗時(shí)間(單位,毫秒
?OUTLINESID:outlinesession標(biāo)識
?CHILD_ADDRESS:子游標(biāo)地址
?SQLTYPE:指出當(dāng)前語句使用的SQL語言版本
?REMOTE:指出是否游標(biāo)是一個(gè)遠(yuǎn)程映象(Y/N
?OBJECTSTATUS:對象狀態(tài)(VALIDorINVALID
?IS_OBSOLETE:當(dāng)子游標(biāo)的數(shù)量太多的時(shí)候,指出游標(biāo)是否被廢棄(Y/N
第三篇-(2-V$SQL_PLAN2007.5.28
本視圖提供了一種方式檢查那些執(zhí)行過的并且仍在緩存中的cursor的執(zhí)行計(jì)
劃。通常,本視圖提供的信息與打印出的EXPLAINPLAN非常相似,不過,
EXPLAINPLAN顯示的是理論上的計(jì)劃,并不一定在執(zhí)行的時(shí)候就會被使用,但
V$SQL_PLAN中包括的是實(shí)際被使用的計(jì)劃。獲自EXPLAINPLAN語句的執(zhí)行
計(jì)劃跟具體執(zhí)行的計(jì)劃可以不同,因?yàn)閏ursor可能被不同的session參數(shù)值編譯(如,
HASH_AREA_SIZEO
V$SQL_PLAN中數(shù)據(jù)可以:
?確認(rèn)當(dāng)前的執(zhí)行計(jì)劃
?鑒別創(chuàng)建表索引效果
?尋找cursor包括的存取路徑(例如,全表查詢或范圍索引查詢
?鑒別索弓I的選擇是否最優(yōu)
?決定是否最優(yōu)化選擇的詳細(xì)執(zhí)行計(jì)劃(如,nestedloopsjoin如開發(fā)者所愿。
本視圖同時(shí)也可被用于當(dāng)成一種關(guān)鍵機(jī)制在計(jì)劃對比中。計(jì)劃對比通常用于
下列各項(xiàng)發(fā)生改變時(shí):
?刪除和新建索引
?在數(shù)據(jù)庫對象上執(zhí)行分析語句
?修改初始參數(shù)值
?從rule-based切換至cost-based優(yōu)化方式
?升級應(yīng)用程序或數(shù)據(jù)庫到新版本之后
如果之前的計(jì)劃仍然在(例如,從V$SQL_PLAN選擇出記錄并保存到oracle表
中供參考,那么就有可能去鑒別一條SQL語句在執(zhí)行計(jì)劃改變后性能方面有什么
變化。
濘意:
Oracle公司強(qiáng)烈推薦你使用DBMS_STATS包而非ANALYZE收集優(yōu)化統(tǒng)計(jì).該包可以讓你
平行地搜集統(tǒng)計(jì)項(xiàng),收集分區(qū)對象(partitionedobjects)的全集統(tǒng)計(jì),并且通過其它方式更好
的調(diào)整你的統(tǒng)計(jì)收集方式。此處,cost-based優(yōu)化器將最終使用被DBMS_STATS收集的統(tǒng)
計(jì)項(xiàng)。瀏覽Oracle9iSuppliedPL/SQL包和類型參考以獲得關(guān)于此包的更多信息。
不過,你必須使用ANALYZE語句而非DBMS_STATS進(jìn)行統(tǒng)計(jì)收縱不涉及cost-based優(yōu)
化器,就像:
?使用VALIDATE或LISTCHAINEDROWS/句
,在freelistblocks上收集信息.
V$SQL_PLAN中的常用列:
除了一些新加列,本視圖幾乎包括所有的PLANJTABLE歹1那些同樣存在于
PLAN_TABLE中的列擁有相同的值:
?ADDRESS:當(dāng)前cursor父句柄位置
?HASH_VALUE:在librarycache中父語句的HASH值。
ADDRESS和HASH_VALUE這兩列可以被用于連接v$sqlarea查詢cursor-
specific信息。?CHILD_NUMBER:使用這個(gè)執(zhí)行計(jì)劃的子cursor數(shù)
歹UADDRESS,HASH_VALUE以及CHILD_NUMBER可被用于連接v$sql查詢
子cursor信息。.OPERATION:在各步驟執(zhí)行內(nèi)部操作的名稱,例如:TABLE
ACCESS
?OPTIONS:描述歹UOPERATION在操作上的變種,例如:FULL
?OBJECT_NODE:用于訪問對象的數(shù)據(jù)庫鏈接databaselink的名稱對于使用并
行執(zhí)行的本地查詢該列能夠描述操作中輸出的次序。
?OBJECT#:表或索弓I對象數(shù)量
?OBJECT_OWNER:對于包含有表或索引的架構(gòu)schema給出其所有者的名稱
?OBJECTNAME:表或索弓|名
?OPTIMIZER:執(zhí)行計(jì)劃中首列的默認(rèn)優(yōu)化模式;例如,CHOOSE。比如業(yè)務(wù)是
個(gè)存儲數(shù)據(jù)庫,它將告知是否對象是最優(yōu)化的。
?ID:在執(zhí)行計(jì)劃中分派到每一步的序號。
?PARENT_ID:對ID步驟的輸出進(jìn)行操作的下一個(gè)執(zhí)行步驟的ID。
?DEPTH:業(yè)務(wù)樹深度(或級。
?POSITION:對于具有相同PARENT_ID的操作其相應(yīng)的處理次序。
?COST:cost-based方式優(yōu)化的操作開銷的評估,如果語句使用rule-based方式,
本列將為空。
?CARDINALITY:根據(jù)cost-based方式操作所訪問的行數(shù)的評估。
?BYTES:根據(jù)cost-based方式操作產(chǎn)生的字節(jié)的評估,。
?OTHER_TAG:其它列的內(nèi)容說明。
?PARTITION_START:范圍存取分區(qū)中的開始分區(qū)。
?PARTITION_STOP:范圍存取分區(qū)中的停止分區(qū)。
?PARTITIONJD:計(jì)算PARTITION_START和PARTITION_STOP這對歹【J值
的步數(shù).OTHER:其它信息即執(zhí)行步驟細(xì)節(jié),供用戶參考。
?DISTRIBUTION:為了并行查詢,存儲用于從生產(chǎn)服務(wù)器到消費(fèi)服務(wù)器分配列
的方法
?CPU_COST:根據(jù)cost-based方式CPU操作開銷的評估。如果語句使用rule-
based方式,本列為空。
?IO_COST:根據(jù)cost-based方式I/O操作開銷的評估。如果語句使用rule-
based方式,本列為空。
?TEMPSPACE:cost-based方式操作(sortorhash-join的臨時(shí)空間占用評估。
如果語句使用rule-based方式,本列為空。
?ACCESS_PREDICATES:指明以便在存取結(jié)構(gòu)中定位列,例如,在范圍索弓I查
詢中的開始或者結(jié)束位置。
?FILTER_PREDICATES:在生成數(shù)據(jù)之前即指明過濾列。
CONNECTBY操作產(chǎn)生DEPTH列替換LEVEL偽歹I」,有時(shí)被用于在SQL腳本
中幫助indentPLAN_TABLE數(shù)據(jù)
V$SQL_PLAN中的連接列
歹UADDRESS,HASH_VALUE和CHILD_NUMBER被用于連接V$SQL或
V$SQLAREA來獲取cursor-specific信息,例如,BUFFER_GET,或連接V$SQLTEXT
獲取完整的SQL語句。
ColumnViewJoinedColumn(s
ADDRESS,HASH_VALUEV$SQLAREAADDRESS,HASH_VALUE
ADDRESS,HASH_VALUE,CHILD_NUMBERV$SQL
ADDRESS,HASH_VALUE,CHILD_NUMBERADDRESS,HASH_VALUE
V$SQLTEXTADDRESS,HASH_VALUE
確認(rèn)SQL語句的優(yōu)化計(jì)劃
下列語句顯示一條指定SQL語句的執(zhí)行計(jì)劃。查看一條SQL語句的執(zhí)行計(jì)
劃是調(diào)整優(yōu)化SQL語句的第一步。這條被查詢到執(zhí)行計(jì)劃的SQL語句是通過語
句的HASH_VALUE和ADDRESS歹J識別。分兩步執(zhí)行:
1.SELECTsql_text,address,hash_valueFROMv$sql
WHEREsqLtextlike'%TAG%';
SQL_TEXTADDRESSHASH_VALUE
821577841224822469
2.SELECToperation,options,object_name,costFROMv$sql_plan
WHEREaddress='82157784'ANDhash_value=1224822469;
OPERATIONOPTIONSOBJECT_NAMECOST-----------------------------------------
SELECTSTATEMENT5SORT
AGGREGATE
HASHJOIN5
TABLEACCESSFULLDEPARTMENTS2TABLEACCESSFULL
EMPLOYEES2
學(xué)習(xí)動態(tài)性能表
第四篇-(1-V$SQLTEXT2007.5.29
本視圖包括Sharedpool中SQL語句的完整文本,一條SQL語句可能分成多個(gè)
塊被保存于多個(gè)記錄內(nèi)。
注:V$SQLAREA只包括頭1000個(gè)字符。
V$SQLTEXT中的常用列
?HASH_VALUE:SQL語句的Hash值
?ADDRESS:sql語句在SGA中的地址
?SQL_TEXT:SQL文本。
?PIECE:SQL語句塊的序號
V$SQLTEXT中的連接列
ColumnViewJoinedColumn(s
HASH_VALUE,ADDRESSV$SQL,V$SESSIONHASH_VALUE,ADDRESS
HASH_VALUE.ADDRESSV$SESSIONSQL_HASH_VALUE,SQL_ADDRESS
示例:已知hash_value:3111103299,查詢sql語句:
select*fromv$sqltext
wherehash_value='3111103299,
orderbypiece
第四篇-(2-V$SQLAREA2007.5.29
本視圖持續(xù)跟蹤所有sharedpool中的共享cursor,在sharedpool中的每一條
SQL語句都對應(yīng)一列。本視圖在分析SQL語句資源使用方面非常重要。
V$SQLAREA中的信息列
?HASH_VALUE:SQL語句的Hash值。
?ADDRESS:SQL語句在SGA中的地址。
這兩列被用于鑒別SQL語句,有時(shí),兩條不同的語句可能hash值相同。這時(shí)候,
必須連同ADDRESS一同使用來確認(rèn)SQL語句。
?PARSING_USER_ID:為語句解析第一條CURSOR的用戶
?VERSION_COUNT:語句cursor的數(shù)量
?KEPTVERSIONS:
?SHARABLE_MEMORY:cursor使用的共享內(nèi)存總數(shù)
?PERSISTENT_MEMORY:cursor使用的常駐內(nèi)存總數(shù)
?RUNTIME_MEMORY:cursor使用的運(yùn)行時(shí)內(nèi)存總數(shù)。
?SQL_TEXT:SQL語句的文本(最大只能保存該語句的前1000個(gè)字符。
?MODULE,ACTION:使用了DBMS_APPLICATION」NFO時(shí)session解析第一
條cursor時(shí)的信息
V$SQLAREA中的其它常用列
?SORTS:語句的排序數(shù)
?CPU_TIME:語句被解析和執(zhí)行的CPU時(shí)間
?ELAPSED_TIME:語句被解析和執(zhí)行的共用時(shí)間
?PARSE_CALLS:語句的解析調(diào)用嗽、硬次數(shù)
?EXECUTIONS:語句的執(zhí)行次數(shù)
?INVALIDATIONS:語句的cursor失效次數(shù)
?LOADS:語句載入(載出數(shù)量
?ROWS_PROCESSED:語句返回的列總數(shù)
V$SQLAREA中的連接歹U
ColumnViewJoinedColumn(s
HASH_VALUE,ADDRESSV$SESSIONSQL_HASH_VALUE,
SQL_ADDRESS
HASH_VALUE,ADDRESSV$SQLTEXT,V$SQL,V$OPEN_CURSOR
HASH_VALUE,ADDRESSSQL_TEXTV$DB_OBJECT_CACHENAME
示例:
L查看消耗資源最多的SQL:
SELECThash_value,executions,buffer_gets,disk_reads,parse_callsFROM
V$SQLAREA
WHEREbuffer_gets>100000000Rdisk_reads>1000000
ORDERBYbuffer_gets+100*disk_readsDESC;
2.查看某條SQL語句的資源消耗:
SELECThash_value,buffer_gets,disk_reads,executions,parse_callsFROM
V$SQLAREA
WHEREhash_Value=228801498ANDaddress=hextoraw('CBD8E4B0,;
學(xué)習(xí)動態(tài)性能表
第五篇-V$SESSION2007.5.29
在本視圖中,每一個(gè)連接到數(shù)據(jù)庫實(shí)例中的session都擁有一條記錄。包括用戶
session及后臺進(jìn)程如DBWR,LGWR,arcchiver等等。
V$SESSION中的常用列
V$SESSION是基礎(chǔ)信息視圖,用于找尋用戶SID或SADDR。不過,它也有一些
列會動態(tài)的變化,可用于檢查用戶。如例:
SQL_HASH_VALUE,SQL_ADDRESS:這兩列用于鑒別默認(rèn)被session執(zhí)行的
SQL語句。如果為null或0,那就說明這個(gè)session沒有執(zhí)行任何SQL語句。
PREV_HASH_VALUE和PREV_ADDRESS兩歹U用來鑒另U被session執(zhí)行的上一條
語句。
注意:當(dāng)使用SQL*Plus進(jìn)行選擇時(shí),確認(rèn)你重定義的列寬不小于11以便看到完
整的數(shù)值。
STATUS:這列用來判斷session狀態(tài)是:
?Achtive:正執(zhí)行SQL語句(waitingfor/usingaresource
?Inactive:等待操作(即等待需要執(zhí)行的SQL語句
?Killed:被標(biāo)注為刪除
下列各列提供session的信息,可被用于當(dāng)一"或多個(gè)combination未知時(shí)找到
session。
Session信息
?SIDSESSION標(biāo)識,常用于連接其它列
?SERIAL#:如果某個(gè)SID又被其它的session使用的話則此數(shù)值自增加(當(dāng)一個(gè)
SESSION結(jié)束,另一個(gè)SESSION開始并使用了同一個(gè)SID。
?AUDSID:審查sessionID唯一性,確認(rèn)它通常也用于當(dāng)尋找并行查詢模式
?USERNAME:當(dāng)前session在oracle中的用戶名。
Client信息
數(shù)據(jù)庫session被一個(gè)運(yùn)行在數(shù)據(jù)庫服務(wù)器上或從中間服務(wù)器甚至桌面通過
SQL*Net連接到數(shù)據(jù)庫的客戶端進(jìn)程啟動,下列各列提供這個(gè)客戶端的信息
?OSUSER:客戶端操作系統(tǒng)用戶名
?MACHINE:客戶端執(zhí)行的機(jī)器
?TERMINAL:客戶端運(yùn)行的終端
?PROCESS:客戶端進(jìn)程的ID
?PROGRAM:客戶端執(zhí)行的客戶端程序
要顯示用戶所連接PC的TERMINALsOSUSER,需在該P(yáng)C的
ORACLE.INI或Windows中設(shè)置關(guān)鍵字TERMINAL,USERNAME。
Application信息
調(diào)用DBMS_APPLICATION_INFO包以設(shè)置一些信息區(qū)分用戶。這將顯示下
列各列。
?CLIENTINFO:DBMS_APPLICATION_INFO中設(shè)置
?ACTION:DBMSAPPLICATION_INFO中設(shè)置
?MODULE:DBMS_APPLICATION_INFO中設(shè)置
下列V$SESSION列同樣可能會被用到:
?ROW_WAIT_OBJ#
?ROW_WAIT_FILE#
?ROW_WAIT_BLOCK#
?ROW_WAIT_ROW#
V$SESSION中的連接列
ColumnViewJoinedColumn(s
SID
V$SESSION_WAIT?V$SESSTAT?V$LOCK,V$SESSION_EVENT,V$OPEN_CURS
ORSID
(SQL_HASH_VALUE,SQL_ADDRESSV$SQLTEXT,V$SQLAREA,V$SQL
(HASH_VALUE,ADDRESS
(PREV_HASH_VALUE,PREV_SQL_ADDRESSV$SQLTEXT,V$SQLAREA,
V$SQL(HASH_VALUE,ADDRESS
TADDRV$TRANSACTIONADDR
PADDRV$PROCESSADDR
示例:
1.查找你的session信息
SELECTSID,OSUSER,USERNAME,MACHINE,PROCESS
FROMV$SESSIONWHEREaudsid=userenv('SESSIONID";
2.當(dāng)machine已知的情況下查找session
SELECTSID,OSUSER,USERNAME,MACHINE,TERMINAL
FROMV$SESSION
WHEREterminal='pts/tl'ANDmachine='rgmdbsl';
3.查找當(dāng)前被某個(gè)指定session正在運(yùn)行的sql語句。假設(shè)sessionlD為100
selectb.sql_text
fromv$sessiona,v$sqlareab
wherea.sql_hash_value=b.hash_valueanda.sid=100
尋找被指定session執(zhí)行的SQL語句是一"1K公共需求,如果session是瓶頸的主
要原因,那根據(jù)其當(dāng)前在執(zhí)行的語句可以查看session在做些什么。
學(xué)習(xí)動態(tài)性能表
第六篇-(1-V$SESSION_WAIT2007.5.30
這是一個(gè)尋找性能瓶頸的關(guān)鍵視圖。它提供了任何情況下session在數(shù)據(jù)庫中
當(dāng)前正在等待什么(如果session當(dāng)前什么也沒在做,則顯示它最后的等待事件。當(dāng)
系統(tǒng)存在性能問題時(shí),本視圖可以做為一個(gè)起點(diǎn)指明探尋問題的方向。
V$SESSION_WAIT中,每一個(gè)連接到實(shí)例的session都對應(yīng)一條記錄。
V$SESSION_WAIT中的常用列
?SID:session標(biāo)識
?EVENT:session當(dāng)前等待的事件,或者最后一次等待事件。
?WAIT_TIME:session等待事件的時(shí)間(單位,百分之一秒如果本列為0,說明
session當(dāng)前session還未有任何等待。
?SEQ#:session等待事件將觸發(fā)其值自增長
?Pl,P2,P3:等待事件中等待的詳細(xì)資料
?P1TEXT,P2TEXT,P3TEXT:解釋說明pl,p2,p3事件
附注:
1.State字段有四種含義:
(lWaiting:SESSION正等待這個(gè)事件。
(2Waitedunknowntime:由于設(shè)置了timed_statistics值為false,導(dǎo)致不能得到時(shí)
間信息。表示發(fā)生了等待,但時(shí)間很短。
(3Waitshorttime:表示發(fā)生了等待,但由于時(shí)間非常短不超過一個(gè)時(shí)間單位,所以
沒有記錄。
(4Waitedknnowtime:如果session等待然后得到了所需資源,那么將從waiting
進(jìn)入本狀態(tài)。
2.Wait_time值也有四種含義:
(1值>0:最后一次等待時(shí)間(單位:10ms,當(dāng)前未在等待狀態(tài)。
(2值=0:session正在等待當(dāng)前的事件。
(3值=1:最后一次等待時(shí)間小于1個(gè)統(tǒng)計(jì)單位,當(dāng)前未在等待狀態(tài)。
(4值=2時(shí)間統(tǒng)計(jì)狀態(tài)未置為可用,當(dāng)前未在等待狀態(tài)。
3.Wait_time和Second_in_wait字段值與state相關(guān):
(1如果state值為Waiting,那么wait_time值無用。Second_in_wait值是實(shí)際的
等待時(shí)間(單位:秒。
(2如果state值為Waitunknowtime,那么wait_time值和Second_in_wait值者B無
用。
(3如果state值為Waitshorttime,那么wait_time值和Second_in_wait值都無
用。
(4如果state值為Waitingknowntime,那么wait_time值就是實(shí)際等待時(shí)間(單
位:秒,Second_in_wait值無用。
V$SESSION_WAIT中的連接列
ColumnViewJoinedColumn(s
SIDV$SESSIONSID
示例:
1.列出當(dāng)前系統(tǒng)的等待事件
SELECTevent,
sum(decode(wait_time,0,1,0"Curr",
sum(decode(wait_time,0,0,1"Prev",
count(*"Total"
FROMv$session_waitGROUPBYeventORDERBYcount(*;
EVENTPrevCurrTot
PL/SQLlocktimerOil
SQL*NetmoredatafromclientOil
smontimerOil
pmontimerOil
SQL*Netmessagetoclient202
dbfilescatteredread202
rdbmsipcmessage077
Enqueue01212
pipeget01212
dbfilesequentialread31013
latchfree9615
SQL*Netmessagefromclient83513802215
這個(gè)按事件和wait_time的分組查詢列出下列的信息:
?多數(shù)的session者R是空閑事件如:SQL*Netmessagefromclient,pipeget,PMON
timer等。?session的cpu占用可以通過上次session的非等待事件大致算出,除此問
題外:看起來多數(shù)session沒有在等待什么事情(難道他們都在干活?但其最后等待
事件都是SQL*Netmessagefromcliento
2.列出指定ID的等待事件
select*fromv$session_waitwheresid=100;
3.應(yīng)用pl,p2,p3進(jìn)行等待事件的分析
v$session_wait視圖的列代表的緩沖區(qū)忙等待事件如下:
P1—與等待相關(guān)的數(shù)據(jù)文件的全部文件數(shù)量。
P2-P1中的數(shù)據(jù)文件的塊數(shù)量。
P3—描述等待產(chǎn)生原因的代碼。
例:selectpl"File#",p2"Block#",p3"ReasonCode"
fromv$session_wait
whereevent='bufferbusywaits*;
如果以上查詢的結(jié)果顯示一個(gè)塊在忙等待,以下的查詢將顯示這一塊的名稱和
類型:
selectowner,segment_name,segment_type
fromdba_extents
wherefile_id=&Pland&P2betweenblock_idandblock_id+blocks-1;
我們也可以查詢dba_data_files以確定等待的文件的filename,方法
是使用v$session_wait中的Pl。
從v$session_wait中查詢P3(原因編碼的值可以知道session等待的原因。原
因編碼的范圍從。到300,下列為部分編碼所代表的事項(xiàng):
0塊被讀入緩沖區(qū)。
100我們想要NEW(創(chuàng)建一個(gè)塊,但這一塊當(dāng)前被另一session讀入。
110我們想將當(dāng)前塊設(shè)為共享,但這一塊被另一session讀入,所以我們必須等
待read(結(jié)束。
120我們想獲得當(dāng)前的塊,但其他人已經(jīng)將這一塊讀入緩沖區(qū),所以我們只能等
待他人的讀入結(jié)束。
130塊被另一session讀入,而且沒有找到其它協(xié)調(diào)的塊,所以我們必須等待讀
的結(jié)束。緩沖區(qū)死鎖后這種情況也有可能產(chǎn)生。所以必須讀入塊的CR。
200我們想新創(chuàng)建一個(gè)block,但其他人在使用,所以我們只好等待他人使用結(jié)
束。210Session想讀入SCUR或XCUR中的塊,如果塊交換或者session處于非連
續(xù)的TX模式,所以等待可能需要很長的時(shí)間。
220在緩沖區(qū)查詢一個(gè)塊的當(dāng)前版本,但有人以不合法的模式使用這一塊,所以
我們只能等待。
230以CR/CRX方式獲得一個(gè)塊,但塊中的更改開始并且沒有結(jié)束。
231CR/CRX掃描找到當(dāng)前塊,但塊中的更改開始并且沒有結(jié)束。
第六篇-(2-V$SESSION_EVENT2007.5.30
本視圖記錄了每個(gè)session的每一項(xiàng)等待事件。由上文所知
V$SESSION_WAIT顯示了session的當(dāng)前等待事件,而V$SESSION_EVENT則記錄
了session自啟動起所有的事件。
V$SESSION_EVENT中的常用列
?SID:session標(biāo)識
?EVENTsession等待的事件
?TOTAL_WAITS:此session當(dāng)前事件的總等待數(shù)
?TIME_WAITED:此session總等待時(shí)間(單位,百分之一秒
?AVERAGE_WAIT:此session當(dāng)前事件平均等待時(shí)間(單位,百分之一秒
?TOTAL_TIMEOUTS:等待超時(shí)次數(shù)
其它用法與V$SESSION_WAIT相似,不詳述了
附注:Oracle的等待事件是衡量Oracle運(yùn)行狀況的重要依據(jù)及指標(biāo)。等待事
件的概念是在Oracle中引入的,大致有100個(gè)等待事件。Oracle8.0中這個(gè)
數(shù)目增加到了大約150在個(gè),在Oracle8i中大約有200個(gè)事件,在Oracle9i中大約
有360個(gè)等待事件。主要有兩種類別的等待事件,即空閑(idle等待事件和非空閑
(non-idle等待事件。關(guān)于空閑事件和非空閑事件目前通過google可以搜索到非常
多詳盡的相關(guān)信息,同時(shí)OracleDatabasePerformanceTuningGuideandReference
中關(guān)于WaitEvents也有非常詳盡的描述,在此就不多費(fèi)口舌了。不過我在itpub
論壇看到有熱心人整理的chm格式非空閑事件說明,有興趣的朋友可以下載,鏈
接如下:非空閑事件說明詳見:http:〃/728733.html[三思筆記]學(xué)習(xí)
動態(tài)性能表
學(xué)習(xí)動態(tài)性能表第七篇--V$PROCESS2007.5.30本視圖包含當(dāng)前系統(tǒng)oracle運(yùn)
行的所有進(jìn)程信息。常被用于將oracle或服務(wù)進(jìn)程的操作系統(tǒng)進(jìn)程ID與數(shù)據(jù)庫
session之間建立聯(lián)系。在某些情況下非常有用:1.如果數(shù)據(jù)庫瓶頸是系統(tǒng)資源
(如:cpu,內(nèi)存,并且占用資源最多的用戶總是停留在某幾個(gè)服務(wù)進(jìn)程,那么進(jìn)行
如下諸項(xiàng):2.3.4.找出資源進(jìn)程找出它們的session,你必須將進(jìn)程與會話
聯(lián)系起來。找出為什么session占用了如此多的資源SQL跟蹤文件名是基于服務(wù)
進(jìn)程的操作系統(tǒng)進(jìn)程ID。要找出session的跟蹤文件,你必須將session與服務(wù)進(jìn)
程聯(lián)系起來。某些事件,如rdbmsipcreply,鑒別session進(jìn)程的Oracle進(jìn)程ID在
等什么。要發(fā)現(xiàn)這些進(jìn)程在做什么,你必須找出它們的session。你所看到的服務(wù)
器上的后臺進(jìn)程(DBWR,LGWR,PMON等都是服務(wù)進(jìn)程。要想知道他們在做什
么,你必須找到他們的session。V$PROCESS中的常用列ADDR:進(jìn)程對象地
址PID:oracle進(jìn)程IDSPID:操作系統(tǒng)進(jìn)程IDV$PROCESS中的連接列
ColumnViewADDRV$SESSIONJoinedColumn(sPADDR示例:I.查找指定系統(tǒng)
用戶在oracle中的session信息及進(jìn)程id,假設(shè)操作系統(tǒng)用戶為:junsansiselect
s.sid,s.SERIAL#,s.username,p.spidfromv$sessions,v$processpwheres.osuser=
'junsansi*ands.PADDR=p.ADDR2.查看鎖和等待SELECT/*+rule*/Ipad(二
decode(l.xidusn,0,3
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 運(yùn)輸合同范本(2篇)
- 移動機(jī)器人原理與技術(shù) 課件 第5、6章 移動機(jī)器人路徑規(guī)劃與避障、移動機(jī)器人同時(shí)定位與建圖
- 天然氣凈化高級工判斷專項(xiàng)測試卷
- 西安外國語大學(xué)《中西文化比較超星》2022-2023學(xué)年第一學(xué)期期末試卷
- 西安外國語大學(xué)《英漢對比與互譯》2021-2022學(xué)年第一學(xué)期期末試卷
- 西昌學(xué)院《公司治理》2022-2023學(xué)年第一學(xué)期期末試卷
- 保理合同保底條款
- cma合同評審里判定規(guī)則
- 2《起點(diǎn)和終點(diǎn) 》(說課稿)-2023-2024學(xué)年一年級上冊科學(xué)教科版
- 廊坊房屋租賃合同范例
- 市政基礎(chǔ)設(shè)施工程質(zhì)量標(biāo)準(zhǔn)化圖集
- 《中醫(yī)基礎(chǔ)理論》體質(zhì)-課件
- 螃蟹奇遇記課件
- 數(shù)字化環(huán)境下的英語教學(xué)轉(zhuǎn)型教學(xué)課件
- GB 29743.1-2022機(jī)動車?yán)鋮s液第1部分:燃油汽車發(fā)動機(jī)冷卻液
- 涉密人員重大事項(xiàng)報(bào)告制度
- 辯論賽-結(jié)果比過程更重要
- (完整版)新概念英語青少版2B期末測試卷
- 馬原第五章資本主義的發(fā)展及其趨勢
- 工業(yè)數(shù)字化智能化2030白皮書
- 田徑競賽規(guī)則與裁判法課件
評論
0/150
提交評論