關於ORACLE裡的buffer cache 的命中率
昨天做技術分享被問到命中率的問題,今天有一個有意思的例子:
SQL1:執行1百萬次 但是這個SQL加起來其實就是在10個distinct資料塊上不厭其煩的查詢
SQL2,SQL3,SQL4,SQL5,SQL6的總和執行了1000次 但是是在10000個distinct的資料塊上,由於這些SQL讀的塊比較離散,大部分都產生的是物理讀。
1000000
命中率=------------------=99.9%(我瞎算的,大概接近)
1000000+10000
看到了吧,我們一共有6個SQL,其中一個SQL1的命中率高達100%,其餘SQL的命中率接近0%
但是整體的命中率卻是99.9%。
想說的是,命中率很多時候會掩蓋問題,只能作為一個輔助的參考指標。就我上面舉得例子,我們看AWR的命中率可能覺得系統沒什麼問題,覺得系統的cache最夠大了,命中率最夠高了
而真實的情況是,大部分的SQL命中率都很差。可能很多SQL存在最佳化的必要,或者CACHE有擴容的需求。
現在ORACLE都根據OWI(等待事件)這種更科學的診斷來判斷資料庫問題了,相信大家很熟悉OWI了,命中率只能作為一個輔助的參考指標。
但是整體的命中率卻是99.9%。
想說的是,命中率很多時候會掩蓋問題,只能作為一個輔助的參考指標。就我上面舉得例子,我們看AWR的命中率可能覺得系統沒什麼問題,覺得系統的cache最夠大了,命中率最夠高了
而真實的情況是,大部分的SQL命中率都很差。可能很多SQL存在最佳化的必要,或者CACHE有擴容的需求。
現在ORACLE都根據OWI(等待事件)這種更科學的診斷來判斷資料庫問題了,相信大家很熟悉OWI了,命中率只能作為一個輔助的參考指標。
關於命中率不科學的其他例子:
一個SQL頻繁的做全表掃描(完全可以走索引的),由於CACHE較大,這個表完全可以被CACHE在記憶體裡,那麼雖然從報告裡看到的命中率很高,但是其實這個SQL的最佳化空間是極大的,命中率也掩蓋了這個問題。
一個SQL頻繁的做全表掃描(完全可以走索引的),由於CACHE較大,這個表完全可以被CACHE在記憶體裡,那麼雖然從報告裡看到的命中率很高,但是其實這個SQL的最佳化空間是極大的,命中率也掩蓋了這個問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22034023/viewspace-763491/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle Cache Buffer ChainsOracleAI
- 33、buffer_cache_3(redo的產生、LRBA、buffer cache裡的等待事件)事件
- Cache 和 Buffer 的區別在哪裡?
- 【BUFFER】Oracle buffer cache之 latch 學習記錄Oracle
- Buffer Cache以及buffer busy waits/gc相關事件AIGC事件
- Linux Buffer/Cache 的區別Linux
- buffer與cache的區別
- 【Cache】將常用的“小表”快取到Buffer Cache快取
- 清理buffer/cache/swap的方法梳理
- IO之核心buffer----"buffer cache"
- 關於mysql的query_cacheMySql
- 關於快取命中率的幾個關鍵問題!快取
- 手動釋放Linux上的Swap、Buffer和CacheLinux
- 關於 PHP artisan config:cache 引發的 bugPHP
- PostgreSQL DBA(89) - Linux(Buffer vs Cache)SQLLinux
- Linux記憶體、Swap、Cache、BufferLinux記憶體
- 關於oracle的Spool命令Oracle
- 關於oracle中的undoOracle
- 關於 Node.js 之 BufferNode.js
- MySQL innodb buffer pool 命中率以及快取了哪些 InnoDB TableMySql快取
- oracle buffer busy waits等待的含義OracleAI
- Cache 和 Buffer 有什麼區別?
- 關於Oracle的BLOB和CLOBOracle
- MySQL 關於Table cache設定MySql
- Oracle Library cacheOracle
- 技術分享 | OceanBase 裡的 BUFFER 表
- Oracle Free Buffer WaitsOracleAI
- Oracle Buffer Busy WaitsOracleAI
- buffer cache深度分析及效能調整(五)
- buffer cache深度分析及效能調整(四)
- buffer cache深度分析及效能調整(六)
- 關於oracle的空間查詢Oracle
- 關於 http cache 的一個小問題以及引發的思考HTTP
- 【ASK_ORACLE】Library cache pin 與 library load lock的關係和區別Oracle
- oracle cache table(轉)Oracle
- 調整緩衝區快取記憶體(Buffer Cache)的效能(轉)快取記憶體
- Linux工具效能調優系列二:buffer和cacheLinux
- Linux如何手動釋放Swap、Buffer和CacheLinux
- 【ASK_ORACLE】Library Cache概念篇(二)之Library Cache Pin的定義Oracle