【Oracle-記憶體管理】-DB Blocks gets,Consistent gets And Physical reads
DB block gets,Consistent gets,Physical reads與Logical
reads各自具體表示的是什麼以及之間的的關係到底是怎樣。
官方線上文件基本的定義為如下:
DB block gets:the number of accesses to the current image of a block
Consistent gets:the number of accesses to a read-consistent image of a block
Physical reads:the number of blocks read from disk
這其中主要涉及到了Oracle讀取資料的consistent mode和current mode這兩個模式,對於db block gets是在current mode下讀取的block數目(單位應該是“塊次”,同一個block讀取了兩個算做2),而consistent gets是在consistent mode下讀取的block數目(單位同上)。
current mode下讀取資料是為了保證讀取到的資料是當前時間點上最新的資料,這樣做的目的一般都是為了DML語句的需求,比如需要更新,自然需要知道最新的資料才行;consistent mode呢主要是為了保證Oracle資料一致讀的特性,一般都是在select情況下發生,讀到的資料可能是一個實際存在的block,也有可能需要根據scn資訊以及transaction相關資訊以及回滾段中資料來構造。
而physical reads是與logical reads相對的一個概念,兩者的區別是讀取的資料是從buffer中讀取到還是從disk上的db file中取到。透過v$sysstat也可以看到,裡面還有db block gets from cache以及consistent gets from cache兩項,且這兩項的數值與db block gets和consistent gets並不相同且小於後兩者。所以不管是db block gets還是consistent gets,都可能出現了physical reads和logical reads兩種情況(由buffer中的是否已經存在需要的資料),也即是說,db block gets與consistent gets兩者已經構成了一次資料庫操作中讀取的所有block的總次數了。因此,logical reads自然也就可以透過如下公式算的:logical reads = (db block gets + consistent gets) - physical reads。
由此,自然也就得出了cache命中率的公式:
Hit Ratio = (db block gets + consistent gets - physical reads) / (db block gets + consistent gets)
OR
Hit Ratio = 1 – (physical reads/(db block gets + consistent gets))
PS:
由於在Oracle中,取資料最後都是從Buffer中取,所以每出現一個physical reads必然會出現一次 logical reads,但是這裡有一個需要注意的地方,就是當出現一個physical reads後接著會有一個logical reads這裡,實際上這裡只算了1 block(physical reads)!
官方線上文件基本的定義為如下:
DB block gets:the number of accesses to the current image of a block
Consistent gets:the number of accesses to a read-consistent image of a block
Physical reads:the number of blocks read from disk
這其中主要涉及到了Oracle讀取資料的consistent mode和current mode這兩個模式,對於db block gets是在current mode下讀取的block數目(單位應該是“塊次”,同一個block讀取了兩個算做2),而consistent gets是在consistent mode下讀取的block數目(單位同上)。
current mode下讀取資料是為了保證讀取到的資料是當前時間點上最新的資料,這樣做的目的一般都是為了DML語句的需求,比如需要更新,自然需要知道最新的資料才行;consistent mode呢主要是為了保證Oracle資料一致讀的特性,一般都是在select情況下發生,讀到的資料可能是一個實際存在的block,也有可能需要根據scn資訊以及transaction相關資訊以及回滾段中資料來構造。
而physical reads是與logical reads相對的一個概念,兩者的區別是讀取的資料是從buffer中讀取到還是從disk上的db file中取到。透過v$sysstat也可以看到,裡面還有db block gets from cache以及consistent gets from cache兩項,且這兩項的數值與db block gets和consistent gets並不相同且小於後兩者。所以不管是db block gets還是consistent gets,都可能出現了physical reads和logical reads兩種情況(由buffer中的是否已經存在需要的資料),也即是說,db block gets與consistent gets兩者已經構成了一次資料庫操作中讀取的所有block的總次數了。因此,logical reads自然也就可以透過如下公式算的:logical reads = (db block gets + consistent gets) - physical reads。
由此,自然也就得出了cache命中率的公式:
Hit Ratio = (db block gets + consistent gets - physical reads) / (db block gets + consistent gets)
OR
Hit Ratio = 1 – (physical reads/(db block gets + consistent gets))
PS:
由於在Oracle中,取資料最後都是從Buffer中取,所以每出現一個physical reads必然會出現一次 logical reads,但是這裡有一個需要注意的地方,就是當出現一個physical reads後接著會有一個logical reads這裡,實際上這裡只算了1 block(physical reads)!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/645199/viewspace-678667/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DB Block Gets、Consistent Gets、Physical ReadsBloC
- recursive calls, db block gets,consistent gets,physical ReadsBloC
- DB Bocks gets,Consistent gets And Physical reads 轉載
- 對'Consistent Gets',''Physical Reads'和'DB Block Gets'的理解BloC
- Consistent Gets,Physical Reads和DB Block Gets的解釋(轉)BloC
- (轉)關於 db block gets,consistent gets,physical reads的概念BloC
- 對'Consistent Gets',''Physical Reads'和'DB Block Gets'的理解和解釋BloC
- 關於統計中Consistent Gets,Physical Reads和DB Block Gets的意義BloC
- oracle buffer gets=db block gets+consistent getsOracleBloC
- DB Bocks gets & Consistent gets 區別
- db block gets 與 consistent read getsBloC
- Consistent Gets(就是logical read)+ DB Block Gets = 所謂的Logical ReadsBloC
- recursive calls ,db block gets , consistent gets的含義BloC
- consistent gets、db block gets的簡單精闢的理解BloC
- consistent gets
- consistent gets 到底指的是什麼?
- 關於執行計劃裡recursive calls,db block gets和consistent gets引數的解釋BloC
- oracle實驗記錄 (oracle consistent gets 計算)Oracle
- 淺談consistent gets的計算
- consistent gets暴漲的一種情況
- db block gets的解釋[轉]BloC
- sqlplus中arrayseize引數以及consistent getsSQL
- 【Oracle-記憶體管理】-Multiple Block SizesOracle記憶體BloC
- [20111229]Consistent gets from cache (fastpath).txtAST
- 【Oracle-記憶體管理】-Multiple I/O SlavesOracle記憶體
- Oracle透過AWR的SQL ordered by Gets和SQL ordered by Reads診斷問題OracleSQL
- [20111228]理解consistent gets*相關資訊
- [20111229]理解consistent gets*相關資訊[補充]
- gets函式的漏洞函式
- oracle-記憶體表(轉)Oracle記憶體
- C語言關於指標,gets()和gets_s()函式的理解C語言指標函式
- AIX: Database performance gets slower the longer the db is running_316533.1AIDatabaseORM
- Your Prediction Gets As Good As Your DataGo
- 讀書筆記:深入解析oracle-第5章 記憶體管理筆記Oracle記憶體
- Why Archive, FRA Diskgroup Gets Mounted / DismountedHive
- 行欲取導致sqlplus中trace的consistent gets遠大於實際塊數SQL
- 記憶體管理 記憶體管理概述記憶體
- getc();fgetc();getchar();gets();fgets();