zoukankan      html  css  js  c++  java
  • Oracle数据库使用Analyze提升sql性能

     

    Oracle数据库使用Analyze提升sql性能

          如果你不使用analyze完成sql优化,将意味着:你拒绝使用数据库的查询优化器,也失去了使用优化连接的机会。假设你创建了一张拥有100万条记录的临时表,如果不对其进行分析,那么优化器将无法从现有的线索中获取表中真正的内容,于是它只能决定使用嵌套循环连接来一行行地扫描数据表,随着数据集的增长,你的数据库性能会越来越差。

       ORACLE数据库的PL/SQL语句执行的优化器,有基于代价的优化器(CBO)和基于规则的优化器(RBO)。

       RBO的优化方式,依赖于一套严格的语法规则,只要按照规则写出的语句,不管数据表和索引的内容是否发生变化,不会影响PL/SQL语句的"执行计划"

    CBOORACLE7版被引入,ORACLE7版以来采用的许多新技术都是只基于CBO的,如星型连接排列查询,哈希连接查询,反向索引,索引表,分区表和并行查询等。CBO计算各种可能"执行计划""代价",即cost,从中选用cost最低的方案,作为实际运行方案。各"执行计划"cost的计算根据,依赖于数据表中数据的统计分布,ORACLE数据库本身对该统计分布是不清楚的,须要分析表和相关的索引,才能搜集到CBO所需的数据。要想使用好CBO,使SQL语句发挥最大效能,必须保证统计数据的及时性。

        统计信息的生成可以有完全计算法和抽样估算法。SQL例句如下:

       完全计算法:analyze table abc compute statistics;
     
       抽样估算法(抽样20%) analyze table abc estimate statistics sample 20percent;

        可以通过定时任务方式,定时通过analyze命令完成数据库中相应表内容的分析处理。

     


  • 相关阅读:
    GoGin 跨域处理
    Vue sso认证快速接入实践
    领域驱动设计(DDD):项目目录(包、模块)结构
    高绩效团队建设与管理系列课程
    VR设备产业链
    Supercell资深策划谈三大产品制作经验:游戏设计就像丛林探险,必须险中求胜
    领导力管理培训课
    博众投资:虚拟数字人概念,开辟元宇宙炒作新战场!
    FW: Flow区块链门票NFT开发实战【含源码】
    放弃学术研究,做投资大获成功
  • 原文地址:https://www.cnblogs.com/widget90/p/9678884.html
Copyright © 2011-2022 走看看