学习笔记:ORACLE 性能优化求生指南
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                学习笔记:ORACLE 性能优化求生指南
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            第一章、ORACLE性能調優:一種系統化方法
 
數據庫優化順序:
?? ?1.調整SQL,PL/SQL 代碼及優化物理設計(分區,索引)盡可能的減少應用的請求;
?? ?2.減少對鎖,閂鎖,緩存及ORACLE代碼層級中其它資源的急用來獲取最好的并發能力;
?? ?3.在前兩步規范化邏輯IO需求的基礎上,通過優化ORACLE 內存來最小化物理IO的需求;
?? ?4.通過提供足夠的IO帶寬并均勻分布系統負載來配置IO子系統以滿足上述物理IO需求;
 
 
第一階段:最小化應用負載
?? ?1.優化應用代碼;?? ??? ??? ?
?? ??? ?在應用系統中優化修改/重寫 SQL,PL/SQL 代碼
?? ?2.修改應用數據庫的物理實現:
?? ??? ?數據庫中調整/修改 索引、反規范化或者分區;
?? ?3.將應用結構化以避免數據庫過載:
?? ??? ?避免對數據庫發出不必要的數據請求。
?? ?4.最佳實踐應用與數據庫服務器間的通信
?? ?5.優化數據庫物理設計
?? ??? ?創建索引,反規范化設計、創建分區
?? ?6.優化ORACLE 查詢優化器
?? ??? ?對SQL 性能進行監測,恰當地配置優化統計信息,必要時覆蓋優化器的計劃???怎樣實現??
?? ?7.優化單條SQL 語句性能
?? ??? ?使用提示(HINT)、存儲概要(STORED OUTLINE)、SQL 剖析(PROFILE)、
?? ??? ?以及SQL 重寫(REWRITE)來改變SQL 語句的執行計劃
?? ?8.使用并行SQL
?? ??? ?允許使用多個進程來執行SQL語句
?? ?9.優化并使用PL/SQL 程序
?? ??? ?特定環境下可以使用PL/SQL 來提高應用性能
 
 
第二階段:降低爭用和瓶頸
?? ?閂鎖與鎖的爭用
?? ?閂鎖是對共享內存的并發訪問的保護;
?? ?鎖是對表中數據的訪問保護;
 
第三階段:降低物理IO
 
?? ?在試圖降低每個IO的時間消耗之前,先嘗試降低IO的數量。
?? ?在此基礎上,我們將通過配置內存來緩存(CACHE)與緩沖(buffer)IO請示,從而進一步降低IO;
 
?? ?內存管理:數據庫能自動管理內存,但是在確保最優性能方面仍然有大量的工作需要數據庫管理員來處理:
?? ?1.確保ORACLE能否從操作系統得到足夠的內存。
?? ?2.確保內存在PGA與SGA之間的合理劃分,在ORACLE11G 啟用自動內存管理。
?? ?3.在特定的內存區域中,對段的分配 做出微調。
?? ?4.對控制排序和連接的參數做出微調。
?? ?5.監控ORACLE的內存分配,并且在必要時進行人工干預。
 
第四階段:優化磁盤IO
?? ?確保IO子系統有足夠的帶寬來處理物理IO請求;
?? ?
?? ?在配置的所有磁盤上均勻的分布負載。
?? ?(raid0 條帶化在性能上是最佳方式,raid5 是最差的,raid5有個”寫損失“,每次寫操作將產生4個實際的讀/寫操作,
?? ?兩次讀舊數據及奇偶信息,兩次寫新的數據及奇偶信息。因此“寫性能”非常差。)
?? ?SSD延時較短,NAS也包含相當一部分網絡延時;
?? ?ORACLE ASM 提供了一些條帶化功能;
 
 
*******************************************************************************
第二章:ORACLE體系結構與基本概念
 
                            
                        
                        
                        數據庫優化順序:
?? ?1.調整SQL,PL/SQL 代碼及優化物理設計(分區,索引)盡可能的減少應用的請求;
?? ?2.減少對鎖,閂鎖,緩存及ORACLE代碼層級中其它資源的急用來獲取最好的并發能力;
?? ?3.在前兩步規范化邏輯IO需求的基礎上,通過優化ORACLE 內存來最小化物理IO的需求;
?? ?4.通過提供足夠的IO帶寬并均勻分布系統負載來配置IO子系統以滿足上述物理IO需求;
第一階段:最小化應用負載
?? ?1.優化應用代碼;?? ??? ??? ?
?? ??? ?在應用系統中優化修改/重寫 SQL,PL/SQL 代碼
?? ?2.修改應用數據庫的物理實現:
?? ??? ?數據庫中調整/修改 索引、反規范化或者分區;
?? ?3.將應用結構化以避免數據庫過載:
?? ??? ?避免對數據庫發出不必要的數據請求。
?? ?4.最佳實踐應用與數據庫服務器間的通信
?? ?5.優化數據庫物理設計
?? ??? ?創建索引,反規范化設計、創建分區
?? ?6.優化ORACLE 查詢優化器
?? ??? ?對SQL 性能進行監測,恰當地配置優化統計信息,必要時覆蓋優化器的計劃???怎樣實現??
?? ?7.優化單條SQL 語句性能
?? ??? ?使用提示(HINT)、存儲概要(STORED OUTLINE)、SQL 剖析(PROFILE)、
?? ??? ?以及SQL 重寫(REWRITE)來改變SQL 語句的執行計劃
?? ?8.使用并行SQL
?? ??? ?允許使用多個進程來執行SQL語句
?? ?9.優化并使用PL/SQL 程序
?? ??? ?特定環境下可以使用PL/SQL 來提高應用性能
第二階段:降低爭用和瓶頸
?? ?閂鎖與鎖的爭用
?? ?閂鎖是對共享內存的并發訪問的保護;
?? ?鎖是對表中數據的訪問保護;
第三階段:降低物理IO
?? ?在試圖降低每個IO的時間消耗之前,先嘗試降低IO的數量。
?? ?在此基礎上,我們將通過配置內存來緩存(CACHE)與緩沖(buffer)IO請示,從而進一步降低IO;
?? ?內存管理:數據庫能自動管理內存,但是在確保最優性能方面仍然有大量的工作需要數據庫管理員來處理:
?? ?1.確保ORACLE能否從操作系統得到足夠的內存。
?? ?2.確保內存在PGA與SGA之間的合理劃分,在ORACLE11G 啟用自動內存管理。
?? ?3.在特定的內存區域中,對段的分配 做出微調。
?? ?4.對控制排序和連接的參數做出微調。
?? ?5.監控ORACLE的內存分配,并且在必要時進行人工干預。
第四階段:優化磁盤IO
?? ?確保IO子系統有足夠的帶寬來處理物理IO請求;
?? ?
?? ?在配置的所有磁盤上均勻的分布負載。
?? ?(raid0 條帶化在性能上是最佳方式,raid5 是最差的,raid5有個”寫損失“,每次寫操作將產生4個實際的讀/寫操作,
?? ?兩次讀舊數據及奇偶信息,兩次寫新的數據及奇偶信息。因此“寫性能”非常差。)
?? ?SSD延時較短,NAS也包含相當一部分網絡延時;
?? ?ORACLE ASM 提供了一些條帶化功能;
*******************************************************************************
第二章:ORACLE體系結構與基本概念
 
 
/*?? ORACLE PERFORMANCE SURVIVAL GUIDE:  澳:GUY HARRISON 著, 鄭勇斌等 譯*/
 
書中涉及到的代碼可在以下地址下載及瀏覽:
 
http://guyharrison.squarespace.com/opsgsamples/
 
總結
以上是生活随笔為你收集整理的学习笔记:ORACLE 性能优化求生指南的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 建立表/索引时的 存储参数:【PCTUS
 - 下一篇: 位图索引(bitmap index)冲突