• oracle数据库查询原理


       说到查询原理首先要知道ORACLE的体系结构。数据库服务由:实例、数据库文件这两部分构成。实例部分包括: SGA(System Global Area) 和PGA (Progam Global Area)以及后台进程构成。实例包括:数据文件、控制文件、日志文件、参数文件等。

      当用户写入sql语句开始查询时,首先进入到PGA(PGA作用是保存连接信息和权限信息进行预处理),sql语句在PGA会生成一个唯一的HASH值(类似于身份证)。然后进入到SGA的共享池里,在共享池里如果存在一样的HASH值,则直接进行sql语句解析。如果没有相同的HASH值那就要检查 sql语法是否正确和语义是否正确是否有权限,没问题后生成一个HASH值保存在共享池里,再进行sql语句解析。sql解析的时候会优化器会分析诸如走索引还是不走索引等,最终选择一条效率最高的路线,将改执行计划保存下来。下一步就是到数据缓冲区 去取数据了。如果恰好此时缓冲区有相应的数据,则取到该数据,查询结束。如果数据缓冲区没有数据,就麻烦了得到磁盘中的数据文件去读取数据。经过磁盘IO查询时间会大大增加。查到了就返回查询结果,如果没有查到则返回空。

    ORACLE数据库设计的这么复杂就是为了优化查询效率,尽量让数据库少做事!使我们调用数据库的时候更有效率。

  • 相关阅读:
    FFMPEG 中dts和pts区别
    time_base
    [总结]FFMPEG视音频编解码零基础学习方法
    autolayout收集,适配,自动布局 状态栏 applicationFrame
    滑出式导航面板
    WPF与WCF c#
    App Icons on iPad and iPhone UI 尺寸
    mac iPhone管理工具
    scrollview背景
    网络编程链接
  • 原文地址:https://www.cnblogs.com/wanghongsen/p/8082569.html
Copyright © 2020-2023  润新知