| 网站首页 | 测试咨讯 | 新手入门 | 专注性能 | 测试技术 | 测试管理 | 测试工具 | 开发社区 | 工具下载 | 资料下载 | 测试论坛 | 

[CNTester联盟群]交流群:34446273/21968356/64461572 白盒群:18400216 自动化群:2706508 性能群:4498858 外包群:59649884 管理群(需有管理经验):64442523

新手入门
 入门指南
 经验之谈
测试咨讯
 行业新闻
 网站动态
 人才就业
 CNTester基金
 标准规范
专注性能
 性能测试知识
 性能测试工具
 程序设计性能
 数据库性能
 Web应用服务器性能
 操作系统性能
 服务器与网络性能
测试技术
 用例设计
 性能测试
 自动化测试
 Web测试
 面向对象测试
 综合技术
 阶段性测试
 行业类测试
测试管理
 项目管理
 项目案例
 质量管理
 软件过程
测试工具
 Mercury系列
 Rational系列
 测试管理工具
 性能测试工具
 功能测试工具
 单元测试工具
 其它测试工具
开发社区
 Java技术
 DotNet技术
 C技术
 数据库技术
 操作系统
 服务器与中间件
工具下载
 测试工具
 开发工具
 企业工程
 网络通信
 媒体桌面
 游戏娱乐
 其他工具
资料下载
 测试资料
 程序设计
 数据库
 操作系统
 应用服务器
 电子期刊
 其他资料
 
 
您现在的位置: 中国测试员网站 >> 专注性能 >> 数据库 >> Oracle性能 >> 文章正文
  oracle性能调整的十大要点         ★★★ 【字体:
oracle性能调整的十大要点
作者:ORACLE.C…    文章来源:ORACLE.COM.CN    点击数:    更新时间:2007-8-19    

                    oracle性能调整的十大要点

IT168 技术文档】一、SGA

    1Shared pool tunning
    Shared pool
的优化应该放在优先考虑,因为一个cache missshared pool中发生比在data buffer中发生导致的成本更高,由于dictionary数据一般比library cache中的数据在内存中保存的时间长,所以关键是library cache的优化。
    Gets
:(parse)在namespace中查找对象的次数;
    Pins
:(execution)在namespace中读取或执行对象的次数;
    Reloads
(reparse)在执行阶段library cache misses的次数,导致sql需要重新解析。

    1) 检查v$librarycachesql areagethitratio是否超过90%,如果未超过90%,应该检查应用代码,提高应用代码的效率。
    Select gethitratio from v$librarycache where namespace=
sql area;

    2) v$librarycachereloads/pins的比率应该小于1%,如果大于1%,应该增加参数shared_pool_size的值。
    Select sum(pins)
executions,sum(reloads) cache misses,sum(reloads)/sum(pins) from v$librarycache;

    reloads/pins>1%有两种可能,一种是library cache空间不足,一种是sql中引用的对象不合法。

    3shared pool reserved size一般是shared pool size10%,不能超过50%。V$shared_pool_reserved中的request misses0或没有持续增长,或者free_memory大于shared pool reserved size50%,表明shared pool reserved size过大,可以压缩。

    4)将大的匿名pl/sql代码块转换成小的匿名pl/sql代码块调用存储过程。

    5)从9i开始,可以将execution plansql语句一起保存在library cache中,方便进行性能诊断。从v$sql_plan中可以看到execution plans

    6)保留大的对象在shared pool中。大的对象是造成内存碎片的主要原因,为了腾出空间许多小对象需要移出内存,从而影响了用户的性能。因此需要将一些常用的大的对象保留在shared pool中,下列对象需要保留在shared pool中:
    a.
经常使用的存储过程;
    b.
经常操作的表上的已编译的触发器
    c. Sequence
,因为Sequence移出shared pool后可能产生号码丢失。
   
查找没有保存在library cache中的大对象:
    Select * from v$db_object_cache where sharable_mem>10000 and type in ('PACKAGE','PROCEDURE','FUNCTION','PACKAGE BODY') and kept='NO';
   
将这些对象保存在library cache中:
    Execute dbms_shared_pool.keep(
package_name);
   
对应脚本:dbmspool.sql

    7)查找是否存在过大的匿名pl/sql代码块。两种解决方案:
    A
.转换成小的匿名块调用存储过程
    B
.将其保留在shared pool
   
查找是否存在过大的匿名pl/sql块:
    Select sql_text from v$sqlarea where command_type=47 and length(sql_text)>500;

    8Dictionary cache的优化
   
避免出现Dictionary cachemisses,或者misses的数量保持稳定,只能通过调整shared_pool_size来间接调整dictionary cache的大小。

    Percent misses应该很低:大部分应该低于2%,合计应该低于15
    Select sum(getmisses)/sum(gets) from v$rowcache;
   
若超过15%,增加shared_pool_size的值。

    2Buffer Cache

    1granule大小的设置,db_cache_size以字节为单位定义了default buffer pool的大小。
   
如果SGA<128Mgranule=4M,否则granule16M,即需要调整sga的时候以granule为单位增加大小,并且sga的大小应该是granule的整数倍。

    2) 根据v$db_cache_advice调整buffer cache的大小
    SELECT size_for_estimate,buffers_for_estimate,estd_physical_read_factor,estd_physical_reads FROM v$db_cache_advice WHERE NAME='DEFAULT' AND advice_status='ON' AND block_size=(SELECT Value FROM v$parameter WHERE NAME='db_block_size');

    estd_physical_read_factor<=1

    3) 统计buffer cachecache hit ratio>90%,如果低于90%,可以用下列方案解决:

    增加buffer cache的值;
   
使用多个buffer pool
    Cache table

   
sorting and parallel reads 建独立的buffer cache

[1] [2] [3] [4] [5] [6] [7] [8] 下一页

文章录入:root    责任编辑:root 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
    最新热点 最新推荐 相关文章
    · mysql优化基础
    · MySQL服务器安装完之后如何调节性能
    · Mysql数据库管理系统优化方案
    · MySQL Performance Tuning Primer Script
    · MySQL 性能跟踪语句
    · Linux 和对称多处理
    · 应用与数据库性能测试解决方案,QUEST SO
    · 负载、性能测试和容量测试的关系和区别
    · LoadRunner监控Windows和Linux常见问题
    · 31个用来测试网站各项性能的免费工具
    · 应用与数据库性能测试解决方案,QUEST SO
    · 研究项目: JBoss架构分析
    · 如何通过 20% 的工作获得 80% 的性能改善
    · Linux 调度器内幕
    · 在 Linux 上利用数据分区功能提高可伸缩性
    · 降低 Linux 内存开销
    · Linux 和对称多处理 在 SMP 系统上发挥 L
    · 如何提高系统性能指标
    · Java 优化技术 充分挖掘 Java 应用程序性
    · 高速缓存和连接池对访问数据库性能的影响
    Oracle9i--优化与调整完全手
    Oracle9i--优化与调整 完全手
    Oracle9i--优化与调整 完全手
    Oracle9i--优化与调整 完全手
    Oracle9i--优化与调整 完全手
    Oracle9i--优化与调整 完全手
    Oracle9i--优化与调整 完全手
    Oracle9i--优化与调整 完全手
    Oracle9i--优化与调整 完全手
    WebLogic性能:速度不是一切
     
     
     
    ======> [CNTester联盟群]交流群:34446273/21968356/64461572 白盒群:18400216 自动化群:2706508 性能群:4498858 外包群:59649884 管理群(需有管理经验):64442523
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | 

    Copyright@2007 by CNTester.com 中国测试员网站 桂ICP备07005590

    本站为开源免费网站,非商业赢利性组织。本站文章部分从网络搜索获取,如果您认为某些侵犯了您的权益,麻烦您联系本站,我们会尽快删除相关内容,同时也希望您的谅解,我们的初衷是为了让更多人去学习这方面的知识,让行业有更好的发展。

    联系电话: 15021358905