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语句。

  • 相关阅读:
    apply call this arguments caller callee
    JavaScript 小刮号
    asp.net底层http管道
    JavaScript 使用方括号([])引用对象的属性和方法 createDelegate
    MSIL条件跳转(简单注释)
    微软MVP手把手教你如何修改.NET Framework
    简单操作IL文件
    Remoting入门实例
    AutoResetEvent和ManualResetEvent用法示例
    AutoResetEvent和ManualResetEvent用法
  • 原文地址:https://www.cnblogs.com/honliv/p/2982686.html
Copyright © 2011-2022 走看看