http://space.itpub.net/12985663/viewspace-672440
Oracle中的SQL在执行之前进行解析,一个硬解析包括下面的步骤:
1. 加载到共享池中 - SQL源代码被加载到内存中。
2. 语法解析 - Oracle检查语法拼写错误。
3. 语义解析 - Oracle验证来自数据字典的所有表名和列名并且验证你是否有权访问这些数据。
4. 查询转换 - 如果允许(query_rewrite=true),oracle将把复杂的SQL转换为等价的简单形式。
5. 优化 - 根据模式的统计信息创建执行计划(在10g中或许会使用动态的样本统计信息)。
6. 创建可执行文件 - Oracle创建一个服务于SQL查询的、调用本地文件的可执行文件。
Oracle提供了 shared_pool_size参数来缓存SQL从而使我们不需要重复解析SQL。但是,如果shared_pool_size设置太小或者在代码中使用了非重用的SQL(例如包含直接量where name="fred"),SQL语句可能会过期。
在Oracle中软解析和硬解析的区别是什么?仅仅是上面用红色标明的第一步。也就是说,软解析不需要重新装载到共享池(以及相关的内存分配)。
通常很高的解析调用次数(>10/秒)表明你的系统有大量不同的SQL语句,或者你的SQL语句没有被重用(例如,没有使用绑定变量)。
硬解析需要把 SQL语句加载到共享池中。硬解析比软解析差很多,因为它牵涉到共享池中内存的分配和管理。一旦被加载,SQL必须完全重新检查语法和语义以及生成可执行目标。
如果shared_pool_size设置的太小或者SQL语句没有重用,则会发生大量的硬解析。
所以要适当的设置共享池大小并且通过主机变量重用SQL。
分享到:
相关推荐
Oracle 硬解析与软解析是数据库性能优化中非常重要的概念,它们对数据库的性能有着直接的影响。在 Oracle 中,硬解析和软解析是两种不同的 SQL 语句执行方式,它们的执行过程、特点和使用场景均不同。 一、SQL 语句...
在数据库中硬解析是万恶之源,为大家提供一个查找并且定位oracle硬解析问题SQL语句脚本
ORACLE有些sql语句,不确定它是否会增加硬解析次数,对其它进行测试,是否会增加硬解析。
oracle性能优化
Oracle数据库在处理SQL语句时,有两种主要的解析方式:硬解析(Hard Parse)和软解析(Soft Parse),这两种解析方式对于数据库性能有着显著的影响。理解它们的区别是优化数据库性能的关键。 硬解析是指数据库需要...
Oracle SQL疑难解析是一本专为解决数据库操作中遇到的实际问题而编写的书籍,它涵盖了大量SQL查询、数据处理和性能优化的实用技巧。在"oracle-sql-recipes-master"这个压缩包中,很可能是包含了书中的示例代码和练习...
在oracle中利用函数实现计算公式解析|在oracle中利用函数实现计算公式解析
【知识点解析】 1. ORA-01555错误:这个错误通常发生在数据库尝试提供一个事务一致性读取时,由于undo数据被覆盖或删除,无法找到必要的历史记录。选项A是正确的,因为长时间运行的查询可能会导致undo数据在UNDO表...
Oracle IO 问题解析是指 Oracle 数据库中读写操作对 IO 的影响,包括写操作和读操作。写操作包括控制文件的写入、用户数据的修改、Redo Log 的写入、Archive Log 的写入和临时表空间的写入等。这些写操作都是 ...
### Oracle解析XML #### 一、XML在Oracle中的处理方式 在Oracle数据库中,XML数据可以被存储为CLOB类型,并通过多种方法进行处理。常用的XML处理函数包括`XMLType`、`XMLParse`、`XMLELEMENT`、`XMLFOREST`等。...
053是Oracle OCP认证考试中的一个版本,针对的是Oracle Database 12c的相关知识。本题库解析主要涵盖了这个版本考试的最新题目和解答,帮助考生准备2015年10月的Oracle OCP 053认证考试。 Oracle Database 12c是...
"Oracle数据库精讲与疑难解析"这本电子书深入探讨了Oracle数据库的各种核心概念和技术,旨在帮助读者全面理解和掌握Oracle数据库的运作机制,并解决实际工作中遇到的问题。 在第13章中,我们可以预见到作者可能会...
"Oracle 通信 TNS 协议中请求报文的解析" 在 Oracle 数据库中,TNS 协议(Transparent Network Substrate)是一种重要的网络通信协议,用于在服务器与客户端之间进行数据交换。然而,TNS 协议的内部细节不公开,...
根据给定的信息,本文将对Oracle OCP 051中的一个特定问题进行详细解析,主要涉及的是在创建新表时,默认值、非空约束以及外键约束如何处理。 ### 标题与描述分析 标题“2015年9月 最新oracle ocp 051解析”表明了...
Oracle 数据块解析是理解 Oracle 数据库内部工作原理的关键部分。数据块是数据库进行最小 I/O 操作的单位,它包含了存储在表、索引和其他数据库对象中的数据。在这个过程中,我们将通过一系列步骤来了解数据块的内部...
本资料“Oracle数据库精讲与疑难解析”旨在深入讲解Oracle数据库的核心概念、操作技巧以及解决常见问题的方法,帮助用户从初学者到熟练掌握Oracle数据库管理。 第一章:Oracle数据库基础 在这一章中,我们将学习...
《深入解析Oracle:DBA入门、进阶与诊断案例》PDF版本下载
Oracle OCP(Oracle Certified Professional)是Oracle公司针对其数据库产品推出的专家级认证,52...通过以上资源的学习和实践,考生不仅可以为1Z0-052考试做好准备,也能提升实际工作中处理Oracle数据库问题的能力。