SQL統計信息一共有以下幾部分。SQL ordered by Elapsed time按照sql執行時間從長到短的排序,SQL ordered by CPU表示按照消耗CPU排序。SQL ordered by Gets表示sql獲取內存塊的數量,SQL ordered by Reads表示執行物理讀的信息,SQL ordered by Executions表示執行次數,SQL ordered by Parse Calls表示sql被分析的次數。Sql的統計信息不能孤立的來看待,而是要結合top5事件來分析。如果是sql排名第一位,我們就能通過sql統計信息輔助分析了。SQL統計信息是一個很好的補充。對于OLTP系統來說,即使是軟分析,也不能過多,依舊會消耗很多內存資源。如果top5事件中出現了很頻繁的sql分析相關的Latch爭用,就可以來這里確認哪些sql分析很頻繁。
Latch和鎖起始還是有區分的,Latch更多的是等待,而鎖更多的是阻塞。Latch是oracle為了保護內存結構而發明的。Latch一般出現在這樣的情況。一個數據塊被一個會話讀取到內存中,與此同時另外一個會話也要讀取這個數據塊,為了保持數據一致性,通過Latch來控制。
由Latch引發的問題比較多,除了未綁定變量外,還有一種情況是,重復執行的sql頻繁訪問一些相同的數據,因此可以將這些sql查詢的結果緩存起來,不用多次查詢,導致數據庫塊被頻繁訪問,而增加了會話的等待時間。
Statspack報告還有很多內容,包括I/O,內存等方面,就不做介紹了。
以上介紹了數據庫報告的分析過程,雖然每個數據庫的運行狀況各異,但是大家只要掌握分析問題的方法和思路,就能很快發現問題。
原文轉自:http://blog.csdn.net/xuyubotest/article/details/8158500