怎樣保持Oracle資料庫SQL效能的穩定性

2021-06-01 17:25:09 字數 778 閱讀 4977

有客戶遇到sql效能不穩定,突然變差導致系統效能出現嚴重問題的情況。對於大型的系統來說,sql效能不穩定,有時突然變差,這是常常遇到的問題。這也是一些dba的挑戰。

對於使用oracle資料庫的應用系統,有時會出現執行得好好的sql,效能突然變差。特別是對於oltp型別系統執行頻繁的核心sql,如果出現效能問題,通常會影響整個資料庫的效能,進而影響整個系統的正常執行。對於個別的sql,比如較少使用的查詢報表之類的sql,如果出現問題,通常只影響少部分功能模組,而不會影響整個系統。

那麼應該怎麼樣保持sql效能的穩定性?

sql的效能變差,通常是在sql語句重新進行了解析,解析時使用了錯誤的執行計畫出現的。下列情況是sql會重新解析的原因:

sql重新解析後,跟以前相比,效能突然變差,通常是下列原因:

3. 其他原因,比如表做了類似於move操作之後,索引不可用,對索引進行了更改。當然這種情況是屬於維護不當引起的問題,不在本文討論的範圍。

綜上所述,sql語句效能突然變差,主要是因為繫結變數和統計資訊的原因。注意這裡只討論了突然變差的情況,而對於由於資料量和業務量的增加效能逐步變差的情況不討論。

為保持sql效能或者說是執行計畫的穩定性,需要從以下幾個方面著手:

而在實際工作中,通過使用定製的統計資訊收集策略,以及在部分系統上使用outline,系統基本上不會出現已有的sql效能突然變差的情況。當然也有維護人員操作不當引起的sql效能突然變差,比如建了某個索引而沒有收集統計資訊,導致sql使用了新建的索引,而該索引並不適合於那條sql;維護人員意外刪除了表個索引的統計資訊。

怎樣保持Oracle資料庫SQL效能的穩定性

有客戶遇到sql效能不穩定,突然變差導致系統效能出現嚴重問題的情況。對於大型的系統來說,sql效能不穩定,有時突然變差,這是常常遇到的問題。這也是一些dba的挑戰。對於使用oracle資料庫的應用系統,有時會出現執行得好好的sql,效能突然變差。特別是對於oltp型別系統執行頻繁的核心sql,如果出...

怎樣新建Oracle資料庫

新建oracle資料庫三種方法 1.通過執行oracle database configuration assistant 建立配置或刪除資料庫 也可在命令列下輸入dbca 2.用命令列的方式建立資料庫 3.通過執行自定義的批處理指令碼 或create oracle sid.bat create o...

怎樣新建Oracle資料庫

原文 怎樣新建oracle資料庫 新建oracle資料庫三種方法 1.通過執行oracle database configuration assistant 建立配置或刪除資料庫 也可在命令列下輸入dbca 2.用命令列的方式建立資料庫 3.通過執行自定義的批處理指令碼 或create oracle...