Focus On Oracle

Installing, Backup & Recovery, Performance Tuning,
Troubleshooting, Upgrading, Patching

Oracle Engineered System


当前位置: 首页 » 技术文章 » 性能优化

如何做数据库优化

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





  
关键词:optim oracle 

相关文章

Getting started with Oracle JDBC
How to generate AWR on PDB and ADG(12.2 afterwards)
Oracle ZDLRA (Zero Data Lost Recovery Appliance) Features
Oracle Database 18c On Exadata
Oracle Database 18c New Feature Guide
Migrate Oracle Database on AIX to Exadata
ORA-12514 During DataPump Export/Import In RAC
Oracle Active DataGuard 12.2新特性揭秘
Active Data Guard新功能演示
Oracle MAA汇总
Oracle Audit Vault and Database Firewall
全面了解Oracle 12c数据安全

联系我们

韩朝阳



    Phone:186-9589-1286

    E-mail:ohsdba@qq.com

    微  信: ohsdba


电话(186-9589-1286)

QQ(375349564)

微信(ohsdba)


常用链接

Oracle
eDelivery
My Oracle Support

Exadata 12.1 Document

Exadata 12.2 Document

Oracle 11gR2 Document

Oracle 12cR1 Document

Oracle 12cR2 Document

GoldenGate 12c

Oracle Fusion Middleware

Mysql Document

PostgreSQL

Python

github

sourceforge



Top
Cell186-9589-1286
QQ 375349564
E-mail ohsdba@qq.com