oracle監控報io嚴重怎么查出來是什么問題?
出現這種情況,應該是sql寫得并不理想或者是表結構的定義有缺陷和沒有查詢索引。
首先我們說說表定義的問題,如果表里有些字段沒有索引,會導致查詢掃描全表數據問題而導致磁盤讀取數據量巨大磁盤io嚴重。
第二種就是sql寫得有問題,要么sql寫得很復雜,要么就是where條件的先后順序沒考慮好。sql查詢的第一個條件最好是字段帶索引如果沒帶索引就會導致全表掃描,磁盤io就會很高。
例如
where a.num+5=9 這種查詢就是會導致全表掃描了(盡管num字段是索引字段也會全表掃描)
正確的寫法應該是
where a.num=4
io很高,有很多種原因,但是都可以總結為一下三點
第一個查詢條件沒有用到索引
第一個查詢條件沒有最大程度的縮小數據范圍
表結構不合理,多表聯合查詢甚至夸庫查詢