爱问知识人 爱问教育 医院库

ORACLE读取数据的过程是怎样的?

首页

ORACLE读取数据的过程是怎样的?

ORACLE读取数据的过程是怎样的?

提交回答

全部答案

    2017-07-27 16:01:20
  •   当一个用户进程发布一个SQL语句,在解析完SQL后,这时候对应的服务器进程就需要查看SQL语句中引用的对像块在CACHE中是否已存在了,ORACLE通过查询*_SEGMENTS数据字典,来找出该段所在的文件号和SEGMENT的起始块号,可以得到一个对像在哪个文件中和拥有哪些已使用的块。
      找出这些信息以后,再对这些块号和文件号进行HASH,看是否能在数据库的CACHE中找到,如果找不到则直接从磁盘中读取。  在使用索引的条件下,通过索引查找,找出KEY相对应的ROWID信息,再把ROWID转换成相应的文件号和块号可以很快地返回数据,所以这就是为什么我们在有些情况下要使用索引的原因。
      但是在这里也要多一些额外的操作,如判断语中的谓词条件中是否有和是否能使用索引,然后要也要通*_SEGMENTS把索引SEGMENT的信息读进来,再根据这这些信息,把索引块读进来,不过一般相对来说存放INDEX的一个块能存放很多的KEY和ROWID的对应信息。
      所以读取INDEX的块的成本一般都很小。   以上是我对于这个问题的解答,希望能够帮到大家。

    戴***

    2017-07-27 16:01:20

类似问题

换一换
  • 系统软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):