• 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数据库设计的这么复杂就是为了优化查询效率,尽量让数据库少做事!使我们调用数据库的时候更有效率。

  • 相关阅读:
    MyBatis的入门案例
    MySQL数据库解决乱码 latin1 转 gbk
    13.MD5对用户密码进行加密
    Windows下永久解决数据库乱码 utf8 转 gbk
    SpringMVC 异常处理
    SpringMVC 实现返回一段数据 & 实现自动发送json格式数据
    SpringMVC中session的使用
    SpringMVC中的重定向和转发的实现
    SpringMVC 获取请求参数
    vue-router介绍
  • 原文地址:https://www.cnblogs.com/wanghongsen/p/8082569.html
Copyright © 2020-2023  润新知