`
longgangbai
  • 浏览: 7331112 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle 性能调优学习笔记(九)-- 优化排序操作B

 
阅读更多

监控SQL使用的内存
   select sql_text,sum(onepass_executions) onepass_cnt,
       sum(multipasses_executions) multipass_cnt
   from v$sql s,v$sql_workarea wa
   where s.address=wa.address
   group by sql_text
   having sum(onepass_executions+multipasses_executions)>0;
   
   select to_number(decode(sid,65535,NULL,sid)) sid,
      operation_type operation,
      trunc(expected_size/1024) esize,
      trunc(actual_mem_used/1024) mem,
      trunc(max_mem_used/1024) maxmem,
      number_passes           pass,
      trunc(tempseg_size/1024)  tsize
     from v$sql_workarea_active
     order by 1,2;
    
     select operation ,options,object_name name,
     trunc(bytes/1024/1024) "Input(MB)",
      trunc(last_memory_used/1024) last_mem,
      trunc(estimated_optimal_size/1024) optimal_mem,
      trunc(estimated_onepass_size/1024) onepass_mem,
      decode(optimal_executions,null,null,
              optimal_executions || '/' ||onepass_executions
        ||'/'|| multipasses_executions ) "0/1/M"
        from v$sql_plan p, v$sql_workarea w
        where p.address=w.address(+)
          and p.hashvalue=w.hash_value(+)
       and p.id=w.operation_id(+)
       and p.address='88BB460C'
       and p.hashvalue=3738161960;
      
      v$pga_target_advice:
         pga区大小和pga命中率的关系
         select round(pga_target_for_estimate/1024/1024) as target_mb,
              estd_pga_cache_hit_percentage as cache_hit_percent,
        estd_overalloc_count
        from v$pga_target_advice
        order by target_mb;
     这个命中率至少高于60%,
     PGA调优
     1.PGA_AGGREGATE_TARGET至少375MB.
     2.分析PGA和命中率的关系
      v$pgastat
      statistics_level必须设置级别为typical.
      select name profile,cnt,decode(total,0,0,round(cnt*100/total)) percentage
         from ( select name ,value cnt, (sum(value) over()) total
      from v$sysstat
      where name like 'workarea exec%');
      OEM PGA区的信息.
    v$PGA_TARGET_ADVICE_HISTORGRAM显示V$SQL_WORKAREA_HISTOGRAM.
    排序所需的空间:
        在专用服务器模式,为PGA中UGA的一部分.
     在共享服务器模式,为共享池中UGA的一部分.
    Oracle 不推荐使用SORT_AREA_SIZE,建议使用pga_aggregate_target
          alter session ....deferred;
    alter system ....deferred;
    
    sort_area_retained_size:排序结束之后,UGA保留的数值.
   排序的区域的参数
      一个执行可能包含多个排序.
      一个单个服务器需要一个排序.
         需要SORT_AREA_SIZE字节大小.
      需要join sort的最小区域sort_area_retained_size.
    每一个并行查询服务需要sort_area_size大小.
   排序调优:
       1.使用自动排序区管理
    2.尽可能的避免排序.
    2.尽量排序时候交换区和page的频繁交换.
   
   临时表空间:
    临时表空间只有一个sort segment;
    不用更新数据字典,更新基于内存的.
    在第一次使用排序,开始申请表空间.
    临时表空间的exetents不需要在数据字典管理.
    在SGA中有一个Sort exetent pool(SEP0.
    
   创建临时表空间
   create temporary tablespace temp tempfile
     '$ORACLE_HOME/ORADATA/u01/temp.dbf' size 200m;
      创建临时表空间,只是创建一个临时文件的头部和尾部,在使用的时
   候才开始真正的分配表空间.在创建之后df -k文件系统的大小不变.
   
   需要排序的情形
    索引需要排序.
    并行插入表.
    order by 或者group by.
    distinct去除重复.
    union,intersect,minus操作.
    sort-merge join.
    analyze命令分析表.
   
   查看系统排序的情况(内存,磁盘,行数)
      select * from v$sysstat where name like '%sort%';
   
   避免排序方法:
      1.create indexes 使用nosort;
      2.使用union all替代union.
      3.使用index访问表的joins
      4.在排序列上创建索引
      5.针对large objects使用estimate而不是compute
     
   排序的性能工具
    服务器进程排序在UGA中排序在内存,和临时表空间排序,使用情况的为:v$sort_usage;
    临时表空间相关的排序临时段:v$sort_segment;
    磁盘上排序情况看v$sysstat中sort字段.
   诊断和指导线
    在OLTP系统中磁盘排序占内存排序比率应该小于5%;如果高于5%需要增加SORT_AREA_SIZE/PGA_AGGREGATE_TARGET的值.
    select d.value " DISK" ,m.value "MEM",
       (d.value/m.value)*100 "Ratio"
    FROM v$sysstat m ,v$sysstat d
    WHERE m.name='sorts(memory)'
    and d.name ='sorts(disk)';
   
   监控临时表空间
       默认存储参数应用在排序segment.
    sort segment有无限的extents.
    临时表空间中所有每一个排序segment.
     select tablespace_name,current_users,total_extents,
     used_extents,extent_hits,max_used_blocks,
     max_sort_blocks
     from v$sort_segment;
   临时表空间的设置.
       1.设置适当的存储值.
    2.根据排序需要设置不同的表空间.
    3.条带化表临时空间.
    4.根据v$tempfile和dba_temp_files查看临时表空间的信息.
    查看表空的存储信息
    select session_num,tablespace,extents,blocks
       from v$sort_usage;

分享到:
评论

相关推荐

    玩转oracle学习笔记(四)-数据库操作

    这篇笔记主要聚焦于"玩转Oracle学习笔记(四)",作者通过文档分享了他在数据库管理、查询优化、数据处理等方面的经验。以下是对这些知识点的详细解析: 1. 数据库创建与连接: - Oracle数据库的安装与配置:学习...

    SQL开发指南 第16章 SQL Tuning优化调优技巧--felix笔记.pdf

    ### SQL优化调优技巧概述 本章节主要围绕SQL性能优化这一主题进行展开,详细介绍了多种提升SQL查询效率的方法。在数据库应用中,SQL查询的性能直接影响到系统的响应速度及资源利用率,因此掌握有效的SQL调优技巧...

    Oracle查询操作的学习笔记

    ### Oracle查询操作学习笔记知识点详解 #### 一、Oracle用户管理与权限分配 - **创建用户**:在Oracle中创建用户的基本语法为`CREATE USER username IDENTIFIED BY password`。例如,`CREATE USER xiaoming ...

    ORACLE调优笔记

    ### ORACLE调优笔记知识点详解 #### 一、Oracle错误代码与解决方法 在Oracle数据库管理及优化过程中,经常会遇到一些常见的错误代码,这些错误往往能够帮助我们快速定位问题所在。 1. **ORA-01652: 无法分配临时...

    oracle学习笔记

    索引是提升查询性能的关键,包括B树索引、位图索引和函数索引等,学习如何创建、管理和优化索引对性能调优至关重要。 四、视图与存储过程 视图是虚拟表,它基于一个或多个表的查询结果,提供了一种抽象数据的方式。...

    ORACLE入门到精通笔记

    九、Oracle数据库监控与性能调优 通过使用SQL*Plus、企业管理器(EM)或其他第三方工具,你可以监控数据库的性能指标,如CPU使用率、I/O等待时间等。通过对这些指标的分析,可以找出性能瓶颈并进行调优。 十、...

    Oracle 笔记 详解 资料 用例

    这份"Oracle笔记详解资料用例"涵盖了Oracle数据库的核心概念、安装配置、SQL语言、表和索引、存储结构、备份恢复、性能优化等多个方面,是学习和掌握Oracle数据库的宝贵资源。 首先,Oracle数据库的基础部分包括...

    oracle培训18天笔记

    1. SQL基础:学习SELECT语句,包括选择、投影、分组、排序等操作。 2. DML操作:INSERT、UPDATE、DELETE语句的使用,以及事务处理的概念。 3. SQL高级特性:子查询、连接查询、集合操作、游标、存储过程和函数。 第...

    oracle数据库练习题

    通过这份“Oracle数据库练习题及笔记”,你将有机会实践上述知识点,不断巩固理论知识,并提升实际操作技能。记得在解决每个问题后,不仅要理解答案,还要理解为何这样解答,这样你的Oracle数据库知识将更加扎实。

    oracle sql语句学习

    此外,理解Oracle SQL的性能调优也非常重要,这涉及到查询优化、索引策略、表设计和存储优化等方面。在深入学习过程中,你可能会接触到SQL执行计划、EXPLAIN PLAN等工具,这些都是提升SQL性能的关键。 总的来说,...

    达内学习oracle 笔记

    ### 达内学习Oracle笔记知识点总结 #### 一、Oracle数据库概述 - **数据库与关系数据库**:数据库是用来存储和管理数据的一种系统。关系数据库通过使用关系或二维表来存储数据,这种表由行(row/record)和列...

    oracle 全套笔记

    通过以上笔记的学习,读者将能够全面掌握Oracle数据库的基本操作和管理技巧,为进一步深入学习Oracle的性能调优、数据仓库、数据库设计等高级主题打下坚实基础。这些笔记对于想成为Oracle DBA或者提升数据库管理能力...

    oracle培训笔记

    通过“Oracle培训笔记”,学习者可以深入了解Oracle数据库的各个方面,并通过实践例子加强理解和应用。对于希望在IT领域从事数据库管理或开发工作的初学者来说,这是一份非常有价值的参考资料。

    oracle学习大全-从简单的入门sql到复杂备份

    Oracle性能优化涉及索引创建、查询优化、数据库调优等方面,以提高系统响应速度和资源利用率。这包括使用EXPLAIN PLAN分析查询执行计划,监控V$视图以诊断问题,以及使用SQL Tuning Advisor等工具。 通过这个全面的...

    oracle性能检测

    Oracle性能检测是数据库管理员(DBA)日常工作中至关重要的一环,其目的是确保数据库系统...这本书可能会涵盖Data Guard的创建、管理、性能监控以及在性能优化中的应用,是DBA们学习和实践Oracle Data Guard的宝贵资源。

    Oracle笔记

    Oracle笔记是针对数据库管理系统Oracle的学习资料集合,涵盖了Oracle的基本语法和关键概念。Oracle数据库系统是全球广泛使用的商业级关系型数据库管理系统,尤其在大型企业中应用广泛。本笔记旨在帮助初学者和进阶...

    Oracle培训18天老师笔记

    学习者会理解如何管理这些组件以优化性能和存储。 4. **数据库对象**:Oracle支持多种数据库对象,如表、视图、索引、存储过程、触发器、函数等。课程将详细讲解创建、修改和删除这些对象的方法,以及如何管理和...

    oracle 学习资料

    Oracle学习笔记通常包括了更具体的实践操作和高级特性,例如: 1. SQL语言:Oracle SQL是查询、操作和管理Oracle数据库的关键。笔记中会详细介绍DDL(Data Definition Language)用于定义表结构,DML(Data ...

    MySQL实战学习笔记.zip

    这份“MySQL实战学习笔记”涵盖了从基础到高级的诸多知识点,旨在帮助学习者掌握MySQL的核心功能和实际操作技巧。 一、MySQL简介 MySQL是一个开源、免费的数据库系统,由瑞典的MySQL AB公司开发,现在由Oracle公司...

Global site tag (gtag.js) - Google Analytics