上海涛德顾问学院

查看: 45822|回复: 0

Oracle SQL分析的过程

[复制链接]

88

主题

0

好友

451

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2014-5-31 13:13:19 |显示全部楼层
作者:涛德顾问学院技术团队
SQL分析(也叫解析,英文SQL Parse)是 SQL 语句处理中的一个阶段(用于生成跟SQL有关的执行计划就发生在这个阶段)。当我们在应用程序中发出一条SQL 语句时,会对 Oracle DB 发出一个分析调用。在分析调用过程中,Oracle DB 会执行下列操作:

Oracle SQL解析

Oracle SQL解析
1检查语句的语法和语义是否有效
2确定发出语句的进程是否有运行语句的权限
3为语句分配一个专用 SQL 区域
4.1软解析确定在库高速缓存(共享池中)中是否已存在共享 SQL 区域(该区域包含语句分析后的表示形式)。如果已存在,则用户进程使用此分析后的表示形式,并立即运行语句。

4.2硬解析如果不存在,则 Oracle DB 生成语句分析后的表示形式,用户进程在库高速缓存中为语句分配一个共享 SQL 区域,并将语句分析后的表示形式存储在该区域中。



注:
SQL 语句发出分析调用的应用程序与实际分析语句的 Oracle DB 之间的差异。
应用程序发出的分析调用将 SQL 语句与某个专用 SQL 区域关联起来。语句与专用 SQL 区域关联之后,可以重复运行该语句,不需要应用程序发出分析调用。

Oracle DB 的分析操作会为 SQL 语句分配一个共享 SQL 区域。为语句分配了共享SQL 区域后,可以重复运行该语句,无需重新分析。

相对于执行来说,分析调用和分析的成本会高得多,因此,请尽可能少执行它们。
注:虽然分析某个 SQL 语句会验证该语句,但分析只能找出可在语句执行之前发现的错误。因此,某些错误可能无法通过分析发现。例如,只有在执行阶段才会发觉并报告数据转换错误或数据错误(例如,尝试在主键中输入重复的值)和死锁这类错误或情形。

涛德顾问学院
Oracle OCM 11g认证培训Oracle 12c OCP 全国独家推出
大数据,BI商业智能,数据库,ADF,中间件,EBS,ODI,ETL全产业链培训服务提供商
回复

使用道具 举报

上海涛德顾问学院 ( 沪ICP备14006824号 )  

GMT+8, 2018-12-15 02:24 , Processed in 0.228337 second(s), 30 queries , Gzip On.

Top Data World

回顶部