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