如何做資料庫最佳化
Oracle能最佳化的地方很多。拋開其他因素,單從DBA的角度來說,個人覺得可以分為以下幾個方面進行最佳化,從各個層面進行最佳化,進而達到最佳效果。
資料庫架構上的最佳化
資料庫層面最優
常用的工具
以Linux平臺為例,下面的引數設定的大小, kernel.shmall = kernel.shmmax = kernel.shmmni = hugepage是否啟用 Solaris中DISM的設定 Hp-Ux非同步IO的設定 AIX VMM(Virtual Memory Manager)的設定
資料庫架構上的最佳化
A.透過安裝規範(Grid Infrastructure, Database, Dataguard),可以減少很多誤操作,方便管理歸檔、邏輯備份、物理備份等,進而提高工作效率,也可以減少故障率 B.RAID級別的設定,RAID組的規劃,儲存Cache的設定,ASM磁碟組的磁碟的大小,LUN的劃分等 C.表空間大小、表空間多少、LOB儲存 D.表是否分割槽、是否採用壓縮、是否有合適的索引、合適的pctfree(減少行連線和行遷移,也可以減少cache buffers chains)、合適的storage減少表碎片 E.邏輯備份的規劃 F.物理備份的規劃 G.作業系統、資料庫監控的規劃一個好的、長期的規劃,可以保證資料庫執行平穩,方便管理,以及後續的升級、遷移都不是問題
資料庫層面最優
A. 透過分析AWR,我們可以手動指定各個元件的大小 Oracle推出了AMM,ASMM等SGA自動化管理,但是這些自動化當然也會帶來一定的弊端,比如內部資源協調等,這些都需要latch,也會帶來CPU的爭用 db_cache_advice引數相關的latch simulator lru latch,simulator hash latch _library_cache_advice引數相關的latch shared pool simulator 透過設定_library_cache_advice為false,可以關閉shared pool的建議。使用statistics_level=basic也可以關閉, 但是不建議調節statistics_level,這也會關閉其他資訊的收集 B. 一些新功能是否啟用等 C. Cursor相關引數 D. Optimizer相關引數 E. IO相關引數客戶端層面最佳化
A.客戶端可能使用的有.NET,Java開發的程式比較多,可以啟用連線池,還可以啟用statement cache並設定大小,提高軟解析的次數 B.根據情況,還可以適當調整SDU,SEND_BUF_SIZE,RECV_BUF_SIZE最後一步sql最佳化
SQL最佳化是重中之重,也是最難的一部分,尤其是SQL語句的改寫,涉及到業務邏輯。常見的方法 A.使用合適的統計資訊收集的方式 B.設定表、索引或列的資訊 C.使用profile D.透過Hint E.使用DBMS_SQLDIAG F.使用DBMS_SPM G.建立合理的索引 H.調整業務邏輯,減少執行頻率 I.使用臨時表或檢視 J.改寫SQL
常用的工具
AWR, ASH, ADDM and Sql Tuning Advisor,SQL Access Advisor,SQLT,SQLHC,ASHV,EM,Grid Control,Cloud Control
摘自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25462274/viewspace-2131683/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【MySQL】資料庫最佳化MySql資料庫
- mysql資料庫最佳化MySql資料庫
- 資料庫系統概述之資料庫最佳化資料庫
- MySQL資料庫效能最佳化MySql資料庫
- mysql資料庫SQL最佳化MySql資料庫
- 資料庫最佳化技巧 - SQL語句最佳化資料庫SQL
- 【效能最佳化】ORACLE資料庫效能最佳化概述Oracle資料庫
- mysql資料庫最佳化彙總MySql資料庫
- 資料庫之查詢最佳化資料庫
- 資料庫的最佳化和效率資料庫
- mysql資料庫SQL最佳化2MySql資料庫
- mysql資料庫SQL最佳化3MySql資料庫
- oracle資料庫最佳化基礎Oracle資料庫
- PG資料庫IO最佳化技巧資料庫
- Access資料庫日常維護和Access資料庫最佳化方法資料庫
- 紹Oracle資料庫的最佳化之資料庫磁碟I/OOracle資料庫
- oracle資料庫巡檢最佳化-快速定位資料庫瓶頸Oracle資料庫
- 資料庫查詢和資料庫(MySQL)索引的最佳化建議資料庫MySql索引
- 資料庫的大腦-最佳化器資料庫
- 常見資料庫最佳化記錄資料庫
- 分散式資料庫排序及最佳化分散式資料庫排序
- REORG TABLE命令最佳化資料庫效能資料庫
- PG資料庫SQL最佳化小技巧資料庫SQL
- PostgreSQL資料庫匯入大量資料時如何最佳化SQL資料庫
- 如何做好SQL Server資料庫安裝規劃OMSQLServer資料庫
- 如何做好資料分析
- 大型網站資料庫及資料訪問最佳化(轉)網站資料庫
- MySQL資料庫高併發最佳化配置MySql資料庫
- Oracle資料庫效能最佳化技術(轉)Oracle資料庫
- 二十三、資料庫效能最佳化方案資料庫
- 為什麼要對資料庫最佳化資料庫
- 資料庫系列:主從延時最佳化資料庫
- SQL Server 資料庫 最佳化 效能瓶頸SQLServer資料庫
- oracle資料庫巡檢最佳化-使用sql語句快速定位資料庫瓶頸Oracle資料庫SQL
- 如何做好資料安全治理
- mysql資料庫最佳化需要遵守的原則MySql資料庫
- MySQL/Oracle資料庫最佳化總結(非常全面)MySqlOracle資料庫
- KaiwuDB 多模資料庫-時序效能最佳化AI資料庫