`
zsmud
  • 浏览: 71666 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

oracle定期表分析

阅读更多
sql 代码
  1. ORACLE9以后如果你想用基于成本的优化器,需要定期(每周)对数据库里的表和索引做analyze分析。   
  2.     
  3.   数据库参数文件initorasid.ora里默认的优化器 optimizer_mode= choose   
  4.       
  5.    你要改成 optimizer_mode =first_rows (OLTP系统)   
  6.      optimizer_mode =all_rows (DSS 系统)   
  7.       
  8.    下面是一个可以在UNIX环境自动生成分析表和索引的脚本analyze.sh   
  9.       
  10.    (sys用户的密码password要根据情况修改。)   
  11.       
  12. ---------------------------------------------------------------------------------------            
  13.  su - oracle -c "sqlplussys/password"<<!---->
  14.     
  15.  set pages 9999   
  16.  set heading off  
  17.  set echo off  
  18.  set feedback off  
  19.     
  20.  spool /oracle_backup/bin/analyze.sql;   
  21.     
  22.  select  
  23.  'analyze table '||owner||'.'||table_name||'estimate statistics sample 5000 rows;'   
  24.  from dba_tables   
  25.  where owner not in('SYS','SYSTEM','PERFSTAT');   
  26.   
  27.  select  
  28.  'analyze index '||owner||'.'||index_name||'compute statistics;'   
  29.  from dba_indexes   
  30.  where owner not in('SYS','SYSTEM','PERFSTAT');   
  31.   
  32.  spool off;   
  33.   
  34.  set echo on  
  35.  set feedback on  
  36.  spool /oracle_backup/log/analyze.log;   
  37.  @/oracle_backup/bin/analyze.sql   
  38.  spool off;   
  39.  exit;   
  40. ---------------------------------------------------------------------------------------    
  41.   
  42.    如果你经常变动的表和索引只属于某个特定的用户(如果是test)可以把上面的   
  43.       
  44.     owner not in('SYS','SYSTEM','PERFSTAT') 改成   
  45.     owner in('TEST')      
  46.       
  47.    来进行定期的分析。   
  48.       
  49.    注意事项:如果你使用的是默认的优化器(choose),一定不要定期使用上面那个analyze.sh脚本。   
  50.          因为这时优化器可能更倾向于全表扫描。   
  51.       
  52.    如果统计分析资料不全,SQL运行时会对缺少统计资料的表进行数据采集。会大大降低SQL的执行速度。   
  53.       
  54.    我们要用下面这个del_analyze.sh脚本定期删除可能产生的分析结果,保证优化器按规则(rule)执行。   
  55.       
  56. ---------------------------------------------------------------------------------------            
  57.  su - oracle -c "sqlplussys/password"<<!---->
  58.   
  59.  set pagesize9999;   
  60.  set linesize 120;   
  61.  set heading off;   
  62.  set echo off;   
  63.  set feedback off;   
  64.   
  65.  spool/oracle_backup/bin/del_analyze.sql;   
  66.   
  67.  select  
  68.  'analyze table '||owner||'.'||table_name||'delete statistics;'   
  69.  from dba_tables   
  70.  where owner not in('SYS','SYSTEM','PERFSTAT');   
  71.   
  72.  select  
  73.  'analyze index '||owner||'.'||index_name||'delete statistics;'   
  74.  from dba_indexes   
  75.  where owner not in('SYS','SYSTEM','PERFSTAT');   
  76.   
  77.  spool off;   
  78.   
  79.  set echo on;   
  80.  set feedback on;   
  81.  spool /oracle_backup/log/del_analyze.log;   
  82.  @/oracle_backup/bin/del_analyze.sql   
  83.  spool off;   
  84.  exit;   
  85. ---------------------------------------------------------------------------------------    
分享到:
评论
1 楼 lilei9963 2008-11-28  
fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

相关推荐

    oralce表分析存储过程.txt

    1.如果你的表经常由几千万变成几百万,又变成几千万那么需要制定分析计划定期表分析,同时可以一并分析索引,计算索引中 数据的分布情况,这样CBO会选择更加准确的执行计划。 2.如果表结构变化了也要做下,也就是...

    Oracle11g从入门到精通2

    9.4.3 定期回收无用表空间 9.4.4 归档历史表空间 第10章 备份与恢复机制 10.1 备份与恢复的方法 10.2 使用数据泵进行逻辑备份和恢复 10.2.1 使用expdp导出数据 10.2.2 使用impdp导入数据 10.3 使用...

    oracle性能监控

    所以, DBA的一个重要工作就是定期监控, 分析评价oracle数据库的性能是否依然满足客户的应用需求. 分析评价oracle数据库性能主要有数据库吞吐量, 数据库用户响应时间两项指标. 数据库用户响应时间又可以分为系统服务...

    从一个“普通”的Oracle DBA(Oracle数据库管理员)转变为Oracle Applications DBA(Oracle应用程序数据库管理员)

    要知道任何时刻数据库都可能会有一些object 是invalid的,你的一些操作也会增加invalid objects,定期检查这些invalid objects的数量,然后定期用utlrp去重新编译,utlrp.squ在ORACLE HOME的rdbms/admin下,需要用...

    Oracle日常维护故障定位故障排除

    6由于未对特大表(达到或超过100万条记录)定期做表分析导致数据库操作特别慢 7由于空间不够导致插入数据时扩展索引失败 8由于REDOLOG破坏导致数据库异常 9由于控制文件被破坏导致数据库无法正常启动 10由于数据文件...

    Oracle数据库管理员技术指南

    1.2.3 怎样配置符合 OFA 的 Oracle 文件 系统 1.3 规划数据库文件布局 1.3.1 最大化可用性的规划 1.3.2 最小化磁盘争用的规划 1.4 建立参数文件 1.4.1 配置参数的一些注意事项 1.4.2 建立参数文件的连接 ...

    Oracle11g从入门到精通

    9.4.3 定期回收无用表空间 9.4.4 归档历史表空间 第10章 备份与恢复机制 10.1 备份与恢复的方法 10.2 使用数据泵进行逻辑备份和恢复 10.2.1 使用expdp导出数据 10.2.2 使用impdp导入数据 10.3 使用OEM中进行...

    Oracle.11g.从入门到精通 (2/2)

    9.4.3 定期回收无用表空间 9.4.4 归档历史表空间 第10章 备份与恢复机制 10.1 备份与恢复的方法 10.2 使用数据泵进行逻辑备份和恢复 10.2.1 使用expdp导出数据 10.2.2 使用impdp导入数据 10.3 使用OEM中进行备份与...

    Oracle.11g.从入门到精通 (1/2)

    9.4.3 定期回收无用表空间 9.4.4 归档历史表空间 第10章 备份与恢复机制 10.1 备份与恢复的方法 10.2 使用数据泵进行逻辑备份和恢复 10.2.1 使用expdp导出数据 10.2.2 使用impdp导入数据 10.3 使用OEM中进行备份与...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    Oracle数据库日常维护手册

    3.3. 检查 ORACLE 表空间的状态...................................................................................... 8 3.4. 检查 ORACLE 所有数据文件状态....................................................

    Oracle数据库日常维护方案书.docx

    定期做统计分析 检查缓冲区命中率 检查共享池命中率 检查排序区 检查日志缓冲区 性能调优及方法 寻找问题根源 System_Event 事件 Session_Event 事件 Session_Wait 应用优化 例程调优 I-O 优化 ...

    Oracle数据库设计策略及规范.docx

    如果将户主账表分别设计为活期户主账、定期户主账及对公户主账等,则可以大大提高查询效率。 分区策略 在拥有数500行以上的表时,采用分区策略。 索引设计。 对于大的数据库表,合理的索引能够提高整个数据库的操作...

    [Oracle] 分析AWR报告的方法介绍

    2)mmon进程定期以快照(snapshot)的方式将内存中的AWR数据保存到SYSAUX表空间中,主要通过DBA_*视图访问。1. AWR快照的生成默认情况下,每隔一小时自动产生一个快照,保存最近7天的信息,可以通过以下语句查询:SQL&gt;...

    OracleDB数据库维护

    OracleDB服务器会定期为所有重要统计信息及工作量信息创建快照,并将这些数据存储在AWR中。用户可以对捕获的数据进行分析,也可以由数据库自己进行分析,或者两者兼有。2.数据库使用自动任务执行常规维护操作,如...

    数据分析系统.docx

    三、建设目标 建设一个轻量级的数据分析系统,可以实现文本数据的导入以及对一些数据库的数据读取,比如SQL、ORACLE、MYSQL等。同时可以通过报表生成的模块实现对数据的按条件查询功能;另外可以根据用户预设的条件...

    java_jsp项目源码_车辆管理系统(struts+hibernate+spring+oracle).rar

    车辆管理系统是一个基于Struts、Hibernate、Spring和Oracle数据库的综合性管理平台。该系统旨在满足现代企事业单位对于车辆管理的需求,实现车辆信息的集中化、规范化和高效化管理。 主要功能包括: 1. 车辆信息...

    MySQL定期分析检查与优化表的方法小结

    相比oracle,MySQL就是一个玩具级别的数据库,在网易门户中,DBA基本很少去管理到MySQL的东西,所以我们产品使用到的MySQL的一些配置和优化还是需要我们开发人员自己动手,下面就简单介绍一下实用的定期优化方法

Global site tag (gtag.js) - Google Analytics