`
zsmud
  • 浏览: 73384 次
  • 性别: 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

相关推荐

    自动生成oracle数据库表分析语句

    通过分析表和索引,Oracle可以更新统计信息,这些信息将被查询优化器用于选择最佳的执行计划。本文将详细介绍如何自动生成表分析SQL语句和索引分析SQL语句。 #### 表分析语句 表分析语句主要用于更新表的统计信息...

    oracle查询表碎片

    通过对给定的SQL查询语句的分析,我们可以有效地检测Oracle表的碎片情况,并据此采取相应的优化措施。合理管理和优化表碎片不仅可以提高查询性能,还能节省宝贵的存储资源。希望本文能为Oracle数据库管理员提供一定...

    oracle动态性能表分析说明

    本文将深入探讨Oracle动态性能表的结构、功能以及如何使用它们来分析数据库性能。 首先,Oracle动态性能表主要由一系列以“V$”开头的视图组成,如V$SESSION、V$SYSTEM_EVENT、V$BUFFER_CACHE等。每个V$视图代表一...

    oracle temp表空间不足解决方法

    - 实施监控:使用Oracle的动态性能视图(如V$TEMPSPACE_USAGE,V$SESSION_TEMP_SPACE_USAGE)定期监控Temp表空间的使用情况,以便及时发现潜在问题。 - 设置警告阈值:在告警日志中设置适当的阈值,当Temp表空间...

    oracle全表扫描的3种优化手段

    2. **定期分析表统计信息**:使用`ANALYZE TABLE`命令定期更新表的统计信息,确保优化器能够基于准确的数据作出最佳的执行计划决策。 3. **监控性能变化**:实施优化后,需要持续监控数据库性能的变化,以确保所采取...

    oracle内存全面分析

    ADDM是Oracle的自动诊断监视器,定期分析数据库性能,提出内存调整建议。 2. 实时监控 定期检查V$SESSION、V$PGA_MEMORY_ALLOCATIONS等视图,监控内存使用状态,及时发现异常。 总结,Oracle内存全面分析涉及SGA...

    oracle导出表结构到excel中

    在Oracle数据库管理中,将表结构导出到Excel文件是一个常见的需求,这有助于数据分析、报告制作或数据共享。以下是一个详细的步骤指南,介绍如何完成这个任务。 首先,我们需要准备一个SQL查询来获取所需表的数据...

    oracle表结构导word工具

    "Oracle表结构导Word工具"就是为了解决这个问题而设计的,它能够将Oracle数据库中的表结构方便快捷地导出成Word文档,使得信息更易于阅读和共享。 这个工具的核心功能在于自动化生成表结构的详细文档,包括表名、...

    oracle系统表查询

    - **分析表统计数据**:`ANALYZE my_table COMPUTE STATISTICS;` 该命令用于收集并更新表的统计信息,这对优化查询计划非常有帮助。 - **查询表使用的extent信息**:`SELECT extent_id, bytes FROM dba_extents ...

    oracle的表分析[文].pdf

    分析表和索引可以手动执行,但通常建议定期自动化执行,以反映数据的变化。在描述中提到的`analyze.sh`脚本就是一个例子,它可以在UNIX环境下由sys用户自动运行,对指定的所有非系统表和索引进行5000行的采样分析。...

    \Oracle 外部表

    ### Oracle 外部表知识点详解 #### 一、外部表的概念及特性 **定义与功能:** 外部表是Oracle数据库自9i版本开始引入的一种特殊表类型,它并不存储在数据库内部,而是指向操作系统文件系统中的某个文件。通过这种...

    Unix下Oracle服务器性能分析

    在Unix环境下进行Oracle服务器性能分析是一项关键任务,它有助于识别并优化系统的瓶颈,提升数据库应用的性能。本文将深入探讨如何使用Unix系统内置...记住,持续监控和定期性能分析是保持Oracle服务器高效运行的关键。

    ORACLE修改表空间大小

    ### ORACLE 修改表空间大小详解 #### 一、问题背景及原因分析 在Oracle数据库管理过程中,经常会遇到因表空间不足导致的各种问题。其中一种常见问题是ORA-01652错误,即“无法在指定表空间扩展临时段”。这通常...

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

    6. 表分析缺失:对于大型表,定期进行表分析有助于优化查询计划,提高性能。 7. 空间不足:确保有足够的磁盘空间来扩展索引,必要时增加表空间或调整表空间管理策略。 8. REDOLOG破坏:损坏的重做日志文件会导致...

    oracle中表无法删除

    在Oracle数据库管理中,遇到“表无法删除”的问题是一个相对常见的挑战,尤其是在处理系统级用户如sys时...此外,保持良好的数据库维护习惯,定期检查系统表的完整性,可以预防此类问题的发生,确保数据库的稳定运行。

    oracle数据库巡检记录表

    - **巡检背景**:为了确保Oracle数据库系统的稳定运行和高效性能,定期进行数据库巡检是一项必要的维护工作。 - **巡检意义**: - **预防故障**:通过巡检可以提前发现并解决潜在的问题,减少系统故障发生的可能性...

    oracle 表信息统计+表信息分析

    通过上述两种方式,Oracle数据库管理工具提供了灵活而强大的方法来收集和分析表统计信息,从而优化数据库性能。数据库管理员可以根据实际的数据使用模式和业务需求,选择适当的时间和方法来执行统计信息的收集和分析...

    oracle分析优化工具 sqlhc

    1. **执行计划分析**:SQLHC能够生成并比较不同版本SQL语句的执行计划,帮助识别不理想的访问路径和操作符,如全表扫描、索引误用等。 2. **性能监控**:工具可以追踪SQL语句的执行时间、CPU使用、I/O操作等性能...

    关于oracle的表空间,分区表,以及索引的总结

    同时,应定期分析和优化索引,以保持其高效性。 - **分区索引**:对于分区表,可以创建全局分区索引或局部分区索引。全局分区索引覆盖整个表,而局部分区索引仅覆盖其对应的分区,通常局部分区索引在查询只涉及特定...

    使用toad导出oracle数据库某个或多个表中的数据

    本文将详细解释如何使用Toad导出Oracle数据库中的特定表或全部表的数据。 1. **导出单个数据表中的数据** - 首先,你需要启动Toad for Oracle并进入Schema窗口,这里列出了所有数据库对象。 - 在Data部分,你可以...

Global site tag (gtag.js) - Google Analytics