zoukankan      html  css  js  c++  java
  • 网上摘录(琐碎信息)

    目前ORACLE提供了CLOB,NCLOB,BLOB,BFILE共四种LOB类型,CLOB,NLOB为大字符串类型,NLOB为多语言集字符类型,类似于NVARCHAR类型,用他们代替以前的LONG类型;BLOG为大二进制类型,用来代替以前的LONG RAW类型;BFILE可存储操作系统中的各种文件.如:Oracle系统视图,V$SQLAREA  的SQL_FULLTEXT 通过CLOB类型存储大字符串SQL语句。

    ORACLE sql 的处理过程大致如下:
    1.
    运用HASH算法,得到一个HASH值,这个值可以通过V$SQLAREA.HASH_VALUE 查看
    2.
    shared pool 中的 library cache 中查找是否有相同的HASH值,如果存在,则无需硬解析,进行软解析
    3.
    如果shared pool不存在此HASH值,则进行语法检查,查看是否有语法错误
    4.
    如果没有语法错误,就进行语义检查,检查该SQL引用的对象是否存在,该用户是否具有访问该对象的权限
    5.
    如果没有语义错误,对该SQL进行解析,生成解析树,执行计划
    6.
    生成ORACLE能运行的二进制代码,运行该代码并且返回结果给用户
    硬解析和软解析都在第5步进行
    硬解析通常是昂贵的操作,大约占整个SQL执行的70%左右的时间,硬解析会生成执行树,执行计划,等等。
    当再次执行同一条SQL语句的时候,由于发现library cache中有相同的HASH值,这个时候不会硬解析,而会软解析,
    那么软解析究竟是干了什么呢?其实软解析就是跳过了生成解析树,生成执行计划这个耗时又耗CPU的操作,直接利用生成的执行计划运行
    SQL语句。

  • 相关阅读:
    团队冲刺2---个人工作总结一(5.25)
    第十二周学习进度
    课堂作业——找水王
    个人冲刺07
    第十五周学习进度情况
    构建之法阅读笔记06
    构建之法阅读笔记05
    第十四周学习进度情况
    个人冲刺06
    个人冲刺05
  • 原文地址:https://www.cnblogs.com/honliv/p/2982686.html
Copyright © 2011-2022 走看看