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

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

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

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

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

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

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

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

转载于:https://www.cnblogs.com/widget90/p/9678884.html

Oracle数据库使用Analyze提升sql性能相关推荐

  1. Oracle数据库学习:PL/SQL(详解)

    Oracle数据库学习:PL/SQL 什么是PL/SQL PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的扩展语言; 使用PL/SQL 可以编写具 ...

  2. 把Oracle数据库移植到Microsoft SQL Server 7 0

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 把Ora ...

  3. Oracle数据库查看表空间sql语句、查看Oracle数据库表空间剩余 、修改表空间、库备份

    一  Oracle数据库查看表空间sql语句 1.oracle查看表空间当前用户 SQL>  select  username,default_tablespace  from user_use ...

  4. navicat导出数据到oracle,使用Navicat premium导出oracle数据库中数据到SQL server2008数据库中...

    使用Navicat premium导出oracle数据库中数据到SQL server2008数据库中 发布时间:2018-08-20 14:41, 浏览次数:471 , 标签: Navicat pre ...

  5. winform执行oracle语句,C#中的Winform应用程序连接远程Oracle数据库的配置文件及SQL语句的写法...

    远程连接Oracle数据库的配置文件及sql语句 近期,应朋友的要求,用C#语言开发了一个winform应用程序,要求的是连接到远程的Oracle数据库,用惯了SQL Server的我突然有点懵,然后 ...

  6. oracle数据库等级,[数据库]Oracle数据库建表并用SQL编程分等级

    [数据库]Oracle数据库建表并用SQL编程分等级 0 2016-06-15 23:00:13 --创建学生表 create table XS_543 ( XH char(6) not null , ...

  7. idea如何给oracle添加数据_intelij idea下使用java和JDBC连接oracle数据库及简单的SQL操作...

    intelij idea下使用java和JDBC连接oracle数据库及简单的SQL操作 发布时间:2018-07-04 10:09, 浏览次数:2532 , 标签: intelij idea jav ...

  8. oracle - - 注释符,Oracle数据库扩展语言PL/SQL之注释、分隔符和标识符

    点击蓝字关注我吧 [本文详细介绍了Oracle数据库扩展语言PL/SQL的注释.分隔符和标识符,欢迎读者朋友们阅读.转发和收藏!] 1 基本概念 1.1 注释 注释不会被数据库编译,只是给开发人提供一 ...

  9. mysql中10049是什么错误_【学习笔记】Oracle数据库10049用于分析SQL解析笔记案例

    [学习笔记]Oracle数据库10049用于分析SQL解析笔记案例 时间:2016-11-05 13:54   来源:Oracle研究中心   作者:HTZ   点击: 次 天萃荷净 Oracle研究 ...

最新文章

  1. 5分钟 NLP 系列: Word2Vec和Doc2Vec
  2. 使用Kickstart+Apache+Dhcp+Pxe无人值守安装操作系统
  3. 项目当中套一个自己的小库的方式问题记录
  4. CAD公差表以及如何算
  5. 感受JTable 与 JTableModel
  6. 配置 Hadoop 时遇到的一些问题
  7. 优化理论17----wolfe_Powell准则、Wo1fe-Powell搜索法
  8. WES7SP1_zh-CN For Asrock DeskMini A300
  9. 大麦盒子(domybox)无法进入系统解决方案!【简单几步】
  10. 【CSS】纯CSS实现三级导航(模板)
  11. php判断手机号码归属地,手机号码归属查询大全所在位置(PHP通过API获取手机号码归属地)...
  12. 模型的学习方式-迁移学习、多任务学习、小样本学习、元学习
  13. pon终端测试仪_PON产品测试方案
  14. ubuntu vim的 保存退出方法
  15. matlab收获,matlab实习心得体会 1700字
  16. MATLAB函数——atan(x)和atan2(x)的区别
  17. 把当前web页面上的所有图片复制到特定目录
  18. 树莓派怎么安装中文输入法
  19. 【C++入门】函数重载,引用,内联函数......
  20. 程序烧录器STLINK_V2CMSIS_DAP_V2制作——DIY方案分享

热门文章

  1. ACK正式支持对基于Alibaba Cloud Linux操作系统的集群进行等保加固
  2. 如何让一套代码适配所有iOS设备尺寸?
  3. 开放下载!《iOS开发者必读资讯》
  4. 深度解析 | 基于DAG的分布式任务调度平台:Maat
  5. 找不到redis得pid文件_电脑提示Windows找不到文件?试试这两个技巧,轻松解决!...
  6. Java工程师知识图谱
  7. oracle 11gR2 新增deinstall命令来卸载grid和database
  8. 设计模式之控制反转和依赖注入的使用小结
  9. SVN中忘记上传自己写的工程,但是IP已经变了的解决方案
  10. HTML 样式兼容不同设备类型