博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle Tuning思路
阅读量:4921 次
发布时间:2019-06-11

本文共 984 字,大约阅读时间需要 3 分钟。

性能优化之写在前面

  • 不是所有的数据库都需要(能够)优化

  • 数据库库的性能,大多数都不是从数据库层面能够解决的

  • 在不了解业务之前,不可能找到正确的优化思路

  • 优化要有一个度,要适可而止

性能优化的原则

先尽可能从小范围分析问题

  • SQL层
    • 如果能定位到SQL,就不要从会话层面分析
      • 工具:执行计划,10053,10046
  • 会话层
    • 如果能定位到会话层,就不要从系统层面分析
      • 工具:V$SESSION,V$SESSTAT,V$SESSION_WAIT,V$SQL,V$LOCK,SQL_TRAC
  • 系统层
    • 如果无法定位任何性能问题,那么就得从系统层面入手
      • 工具:AWR(Statspack), OS Tuning Tools (IOSTAT,VMSTAT,TOP)

Oracle调优的合理步骤:

  1. 通过调整SQL、PL/SQL以及优化物理设计(分区、索引等)尽可能减少应用的请求
    • 调整索引、创建分区、反规范化

    • 找出 Top SQL 优化 单条SQL,并行SQL,PL/SQL代码

  2. 通过减少对锁、Latch、缓存以及Oracle代码层级中其他资源的争用来获得最好的并发能力。
    • 在Oracle中,因为并发,存在资源争用。

      • 表内记录的争用(通常表现为锁Enqueue等待);

      • 共享内存区域的争用(表现为闩锁Latch等待,内存缓冲区等诸多等待)

  3. 在前两步规范化逻辑IO需求的基础上,通过优化Oracle内存来最小化物理IO的需求
    • 确保Oracle能从操作系统得到足够内存

    • 确保内存在SGA和PGA的合理分配。在Oracle11g中,启用自动内存管理(Automatic Memory Management)

    • 在特定的内存区域中对段的分配作出微调

    • 对控制排序和连接的参数作出微调

    • 监控Oracle内存分配

  4. 如果到现在为止还无法满足物理IO的需求,就得通过提供足够的IO带宽并均匀分布系统负载来配置IO子系统以满足物理IO需求
    • 确定IO子系统有足够的带宽来处理物理IO请求。主要影响因素是磁盘的数量,而非磁盘的存储空间。不同的磁盘性能差异较大,但每秒基本上能处理100次随机IO

    • 在配置的所有磁盘上均匀的分布负载。RAID0(条带化)是最好的方式

       


 

 Oracle调优的具体技术手段:

链接1:

 

转载于:https://www.cnblogs.com/chgxtony/p/4887698.html

你可能感兴趣的文章
C++ 面向对象
查看>>
Maven Nexus
查看>>
js 判断滚动条的滚动方向
查看>>
关于springboot启动时候报错:springboot Failed to parse configuration class [Application]
查看>>
java中Class的使用详解
查看>>
css,js文件后面加一个版本号
查看>>
webpack第一节(2)
查看>>
python之asyncio三种应用方法
查看>>
Laravel 的文件存储 - Storage
查看>>
转:[Server] 在 Windows 上安裝 PHP 5.3 開發環境
查看>>
【IE6的疯狂之二】IE6中PNG Alpha透明(全集)
查看>>
第一个Shell脚本
查看>>
C++ 小笔记
查看>>
Mysql 语句优化
查看>>
例子:进度条
查看>>
包含单引号的sql
查看>>
HTML 基础 2
查看>>
Java 最常见 200+ 面试题全解析:面试必备(转载)
查看>>
LinkedList
查看>>
Spring框架下PropertyPlaceholderConfigurer类配置roperties文件
查看>>