zoukankan      html  css  js  c++  java
  • Oracle性能优化的学习笔记

    内存优化:
    SGA包括三个部分组成。数据缓冲区、日志缓冲区及共享池

    数据缓冲区:大小由DB_Cache_Size参数决定。select name,value from v$parameter where name in('db_cache_size','db_block_size','shared_pool_size','sort_area_size');

    select name value from v$sysstat where name in ('db block gets','consistent gets','physical reads');
    其中理想的情况:physical reads接近为0 也就是说数据全部来自数据缓冲区。
    db block gets表示从内存读取数据  consistent gets表示读取一致性数据。

    select child#,sleeps/gets ratio from v$latch_children where name ='cache buffers lru chain';
    可以检测到数据缓冲区是否有空闲,得到的空闲冲突比例应该接近0

    数据缓冲区内存是否足够大,效率如何,可以通过计算命中率来确定。用磁盘物理读的数据与内在缓冲区的数据进行计算,就得出了命中率。一般要求在90%以上,否则必须增加数据缓冲区的大小。

    共享池大小由参数shared_pool_size决定。在共享池里,SQL区比数据缓存消耗较大的内存区域。
    select name ,bytes from v$sgastat order by name;
    select * from v$sgastat where name = 'free memory';

    free memory是空闲内存,是共享池中可以使用的字节数,dictionary cache 是数据字典缓冲区,library cache是库缓冲区,sql area是SQL缓冲区。
    空闲百分比 = (空闲内存/共享池字节数)×100% 如果小于20% 则应增大共享池参数Shared_Cache_size

    排序区调整:
    select name,value from v$sysstat wehre name like '%sort%";  sorts(memory)表示内存排序量, sorts(disk)表示磁盘序量。 
    失败率 = sort(disks)/sorts(memory)  ×100%  排序区的失败率不得小于5%,否则必须增加排序sort_area_size的大小,使得Oracle尽量使用内存排序。

    磁盘IO的调整就是把数据文件放在多个不同的磁盘上。

    减少了IO的操作次数就减少了CPU的需求。

    下面是我一些实际操作的过程:

    alter system db_cache_size=256000000 scope=spfile;
    alter system open_cursors=800 scope=spfile;
    alter system pga_aggregate_target=128000000 scope=spfile;

    alter system sort_area_size=52428800 scope=spfile;
    alter system sga_max_size=1024000000 scope=spfile;
    alter system shared_pool_size=256000000 scope=spfile;

    重启一下Oracle就可以了。注意这里配置的机器内存是4G。

  • 相关阅读:
    PAIP: Paradigms of Artificial Intelligence Programming
    Common Lisp第三方库介绍 | (R "think-of-lisper" 'Albertlee)
    悲惨世界
    Lisp: Common Lisp, Racket, Clojure, Emacs Lisp
    Github上四种Lisp方言的流行度 | 肉山博客 (Wenshan's Blog)
    Nginx系列~负载均衡服务器与WWW服务器的实现
    Nginx系列~Nginx服务启动不了
    知方可补不足~数据库名称和数据库别名不同了怎么办
    WebApi系列~通过HttpClient来调用Web Api接口~续~实体参数的传递
    WebApi系列~通过HttpClient来调用Web Api接口
  • 原文地址:https://www.cnblogs.com/liubiqu/p/364087.html
Copyright © 2011-2022 走看看