首页 > 新闻资讯

oracle查询表建表语句 oracle解析规则?

oracle解析规则?

sql的处理过程描述如下:

1.检查是否有打开的光标。如果有,直接通过光标链接到位于pga中的私有sql区(privatesqlarea),转到步骤11。否则,执行步骤2。

2.检查是否设置了初始化参数session_cached_cursors。如果设置了,还可以通过光标指向位于pga中的私有sql区域,转到步骤11。否则,转到步骤3。

oracle查询表建表语句 oracle解析规则?

3.检查保持光标和释放光标的设置。如果release_cursorno(缺省no)和hold_cursoryes(缺省no),当oracle执行完sql语句后,为私有sql区分配的内存空间被保留,游标和私有sql区之间的链接也被保留,预编译器将不再使用它。同样,可以通过这个指针直接在privatesql区域获取语句,并转到步骤11。

以上三种情况,实际上没有parse,语句直接从位于pga的私有sql区域获取,直接执行。这是快速解析。

当这三个条件都不存在时,oracle执行第4步。

4.创建一个光标。

5.语法检查:检查语法书写是否正确,是否符合sql参考手册中给出的sql语法。

6.语义分析:查找数据字典,检查表和列是否正确,获取所需对象的解析锁,使这些对象的定义在句子解析过程中不会改变,验证是否满足访问所涉及的schema对象所需的权限。

7.将语句转换成ascii等价的数字代码,然后通过哈希算法得到哈希值。

8.检查库缓存中是否存在具有相同哈希值的语句。如果是,请转到步骤11。否则,转到步骤9。这是软解析。

9.选择执行计划。从可用的执行计划中选择一个最佳执行计划,包括与存储的大纲或实体化视图相关的决策。

10.生成语句的编译代码(p代码)。

11.执行语句。

当一个会话执行一个语句时,该语句的解析结果将被保存在库缓存中,并且在pga的私有sql区域。铜rsor总是通过一个链接直接链接到私有sql区域。如果在private中没有找到这个副本,您需要解析sql,然后匹配库缓存中的哈希值。所以一般来说,您可以使用cursor而不进行任何解析,因为您直接从当前的私有sql区域获得了与语句相关的信息,包括执行计划。一旦需要在库缓存中进行匹配,就必须进行解析。

softppars

什么是oracle实例,写出在oracle如何查找实例名的sql语句?

oracle分为oracle实例和oracle数据库文件。

1.实例是指内存结构,包括sga、sga和后台进程,都命名为实例名。

2.数据文件是用于存储数据的文件。

在关闭状态下,数据库文件存在于磁盘上,用户要读写记录需要打开数据库,也就是打开或建立实例的过程,也就是在内存中划出一块内存,建立各种后台进程。然后用户通过一个进程操作内存,另一个进程将内存写入数据库文件。用户不能直接操作数据库文件。

在单实例状态下,一般实例名和数据库名可以相同,也可以不同。但是我们要注意区分这两个概念。

一般不建议修改数据库名,但是有官方的方法可以修改。

sql语句解析私有区域

原文标题:oracle查询表建表语句 oracle解析规则?,如若转载,请注明出处:https://www.bjtdsx.com/bjtdsx1/37051.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「天地水秀」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。