`

Oracle表高水平位的优化与监控

 
阅读更多

高水平位虚高的案例

--构造表
drop table t purge;
create table t as select * from dba_objects;
insert into t select * from t;
insert into t select * from t;
insert into t select * from t;
insert into t select * from t;
insert into t select * from t;
commit;
---------------------------------------------------------------------------------------------------------------------
--测试表的大小及语句的效率
SQL> select bytes/1024/1024 from user_segments where segment_name='T';
BYTES/1024/1024
---------------
     264
SQL> select count(*) from t;
  COUNT(*)
----------
   2332096
统计信息
----------------------------------------------------------
          0  recursive calls
          0  db block gets
      33350  consistent gets
          0  physical reads

---删除大量数据,再做试验如下,发现SEGMENT未见减少,依然是:
SQL> delete from t where rownum<=2000000;
已删除2000000行。
SQL> commit;
提交完成。
SQL> select bytes/1024/1024 from user_segments where segment_name='T';
BYTES/1024/1024
---------------
            264

---逻辑读也没有减少
SQL> select count(*) from t;
  COUNT(*)
----------
    332096
统计信息
----------------------------------------------------------
          0  recursive calls
          0  db block gets
      33350  consistent gets
          0  physical reads
--用move重组数据后,高水平位释放(注意move操作会导致索引失效),segment占用的空间减少,逻辑读也一并减少。
SQL> alter table t move;
表已更改。
SQL> select bytes/1024/1024 from user_segments where segment_name='T';
BYTES/1024/1024
---------------
    38
SQL> select count(*) from t;
  COUNT(*)
----------
    332096
统计信息
----------------------------------------------------------
          0  recursive calls
          0  db block gets
       4742  consistent gets
          0  physical reads
高水平位虚高的监控

未删除数据前
exec dbms_stats.gather_table_stats(ownname => 'HR',tabname => 'T',estimate_percent => 10,method_opt=> 'for all indexed columns',cascade=>TRUE) ; 


select num_rows,blocks from user_tab_statistics where table_name='T';
NUM_ROWS    BLOCKS

---------- ----------
2637370    37778


set autotrace off
delete from t where rownum<=2300000;
commit;

 

高水平位优化前
exec dbms_stats.gather_table_stats(ownname => 'LJB',tabname => 'T',estimate_percent => 10,method_opt=> 'for all indexed columns',cascade=>TRUE) ; 


select num_rows,blocks from user_tab_statistics where table_name='T';
  NUM_ROWS     BLOCKS
---------- ----------
     635730     37778

结论,异常的NUM_ROWS/BLOCKS往往是判断高水平位异常的入口,NUM_ROWS与BLOCKS的比例需要结合块大小和表每行的字节数来判断,最好是有正常状态的基数作为判断依据。

 

参考至:《基于案例学习sql优化》梁剑斌著

如有错误,欢迎指正

邮箱:czmcj@163.com


    

分享到:
评论

相关推荐

    Oracle数据库性能优化及监控系统的设计实现.pdf

    缓冲区高速缓存的命中率应保持在较高水平,以减少磁盘I/O。 I/O优化是提升数据库性能的另一个重点。本地管理表空间可以帮助平衡I/O负载,将同一表空间的数据文件分散在不同磁盘上,高访问量的数据文件应存储在独立...

    Oracle 10g性能优化.pdf

    Oracle Database 10g是Oracle公司推出的一款革命性的数据库管理系统,它首次引入了“Grid Computing”的概念,旨在通过自动资源管理和故障恢复机制,为用户提供更高水平的数据可用性和系统性能。Oracle 10g不仅在...

    Oracle性能优化求生指南

    3. **实时监控与诊断工具**:Oracle提供了多种工具用于监控数据库性能,如AWR报告、ASH数据等。熟练掌握这些工具可以帮助快速定位问题根源。 #### 四、实战案例分析 - **案例一:解决长时间运行的查询**:介绍了一...

    Oracle11g R2 64位

    - **Advanced Compression Option**:提供更高水平的数据压缩,减少存储成本。 #### 三、Oracle11g R2 64位的安装与配置 1. **安装前的准备**: - **系统要求**:确保操作系统满足Oracle11g R2 64位的要求,例如...

    Oracle之路与数据库优化

    7. **监控与调优工具**:Oracle提供了强大的性能监控工具,如Automatic Workload Repository (AWR)、SQL Tuning Advisor和ASH(Active Session History)。通过这些工具收集性能数据,分析报告,可以定位问题并提出...

    Oracle监控维护技术在变电站监控系统中的应用.pdf

    通过优化数据库配置、定期检查和调整,可以确保变电站监控系统在高负荷运行条件下依然保持高效和稳定。 总结来说,Oracle监控维护技术在变电站监控系统中的应用,不仅提高了数据处理能力,也提升了系统的整体性能,...

    Oracle专家高级编程.pdf

    7. **数据库性能监控与调优**:通过V$视图和AWR(自动工作区管理报告)等工具,可以分析数据库性能,找出瓶颈并进行优化。 8. **并发控制与事务管理**:Oracle的锁机制和多版本并发控制(MVCC)是处理并发操作的...

    oracle高级用法

    "Oracle高级用法"主要涵盖了数据库的优化、安全管理、备份恢复、性能监控和复杂SQL操作等核心内容。下面我们将深入探讨这些高级主题。 一、优化 Oracle数据库优化主要包括SQL优化和索引优化。SQL优化涉及到编写高效...

    SQLTracker Oracle跟踪工具(支持64位)

    SQLTracker是一款专为Oracle数据库设计的高性能监控工具,尤其针对64位操作系统,如win7和win10,提供强大的跟踪和分析功能。在数据库管理领域,了解并掌握SQLTracker对于提升数据库性能优化和问题排查至关重要。 ...

    【全中文手稿】Oracle专家高级编程

    Oracle专家高级编程是一门深入探讨Oracle数据库系统的课程,旨在帮助开发者和DBA们提升在Oracle平台上的编程技能和管理...通过理论与实践的结合,你将能够更有效地管理和优化Oracle数据库,确保系统的稳定性和高性能。

    Oracle DBA手记 数据库诊断案例与性能优化实践

    《Oracle DBA手记:数据库诊断案例与性能优化实践》一书是针对Oracle数据库管理员(DBA)的重要参考资料,由一线Oracle DBA根据实际工作经验精心策划。书中涵盖了Oracle数据库的诊断技巧、性能优化策略以及实战案例...

    基于Oracle的数据库系统性能优化策略.pdf

    - 垂直分割是将高访问频率的列与主键分到一个表,减少数据页的列宽,提高I/O效率,但也可能导致多表连接。 - 冗余列用于减少连接操作,但更新维护成本高,适合数据变动不频繁的情况。 - 派生列通过预先计算,减少...

    循序渐进Oracle++数据库管理、优化与备份恢复

    描述中提到本书是“盖国强的一本力作”,说明作者在Oracle数据库领域内拥有较高的专业水平和丰富的实践经验。同时,“ITPUB推出的第四本oracle的力作”透露了ITPUB在Oracle数据库领域书籍出版方面的专业性和权威性,...

    Oracle_数据库性能优化

    《Oracle数据库性能与可扩展性:定量方法》不仅涵盖了Oracle数据库性能优化的基本理论知识,还结合了丰富的实践经验和案例分析,为读者提供了全面而深入的理解。无论是Oracle数据库管理员还是开发人员,都能从中获得...

    让Oracle跑得更快(扫描版).pdf 高清下载

    通过综合运用这些策略,可以显著提升Oracle数据库的性能,从而支持更高水平的数据处理需求,满足企业对数据库系统高效、稳定运行的要求。在实际操作中,应根据具体场景和需求,灵活选择和调整优化方案,以达到最佳...

    oracle自动监控

    ### Oracle自动监控详解 #### 一、Oracle自动监控概述 Oracle自动监控是一种强大的工具,用于对Oracle数据库进行集中管理和监控...对于希望提高数据库运维水平的企业来说,Oracle自动监控无疑是一个值得考虑的选择。

Global site tag (gtag.js) - Google Analytics