在oracle 中,对于一个sql语句,存在两种可选的解析过程, 一种是硬解析,一种是软解析.
一个硬解析需要经解析,制定执行路径,优化访问计划等许多的步骤.硬解释不仅仅耗费大量的cpu,更重要的是会占据重要的们闩资源,严重影响了系统的并发效率。当一个sql语句提交后,oracle会首先检查一下共享缓冲池里有没有与之完全相同的语句,如果有的话只须执行软分析即可,否则就得进行硬分析。
而唯一使得oracle 能够重复利用执行计划的方法就是采用绑定变量。绑定变量的实质就是用于替代sql语句中的常量的替代变量。绑定变量能够使得每次提交的sql语句都完全一样。
下面用个简单的存储过程例子演示下变量绑定的用法:
Create Table student (grade varchar2(5), num number(6), Name Varchar2(20), age Integer);
Insert Into student Values('101', 100001, 'Jack', 20);
Insert Into student Values('102', 100001, 'Mike', 21);
Insert Into student Values('101', 100002, 'Merry', 19);
Insert Into student Values('102', 100002, 'Tony', 20);
Procedure Test_Bind_Variable Is
v_Name Varchar2(20);
v_Grade Number(6);
v_Num Number(6);
v_Age Integer;
v_Sql Varchar2(200);
Begin
For Cur_Name In (Select Name From Student) Loop
v_Name := Cur_Name.Name;
v_Sql := 'select grade, num, age into :n, :y, :z from student where name = :m';
Execute Immediate v_Sql
Into v_Grade, v_Num, v_Age
Using v_Name;
Dbms_Output.Put_Line('grade=' || v_Grade || ', num=' || v_Num ||
', name=' || v_Name || ', age=' || v_Age);
End Loop;
End Test_Bind_Variable;
测试结果为:
grade=101, num=100001, name=Jack, age=20
grade=102, num=100001, name=Mike, age=21
grade=101, num=100002, name=Merry, age=19
grade=102, num=100002, name=Tony, age=20
分享到:
相关推荐
为了解决这些问题,我们可以使用预编译的PreparedStatement对象来绑定变量,例如: ```java String sql = "select name from oms_user where id=?"; PreparedStatement pstmt = connection.prepareStatement(sql); ...
在本文中,我们将详细地探讨绑定变量的目的、命名方法、使用限制条件和应用实例。 为什么使用绑定变量? 绑定变量是解决 Oracle 应用程序可伸缩性的一个关键环节。如果不使用绑定变量,每次查询都是一个新的查询,...
PLSQL绑定变量用法小结归纳 绑定变量是PLSQL中的一种强大工具,能够提高数据库的性能和可扩展性。在Oracle中,对于一个提交的SQL语句,存在两种可选的解析过程,一种叫做硬解析,一种叫做软解析。硬解析需要经解析...
相反,如果使用绑定变量,Oracle会尝试在共享池(Shared Pool)中查找相同的基本SQL结构,如果找到,就进行软分析(Soft Parse),从而避免重复的工作。 不使用绑定变量的另一个负面影响是共享池中的SQL语句数量...
### 如何绑定变量 在OLTP(Online Transaction Processing...通过以上方法,我们可以有效地在Oracle数据库中使用绑定变量来优化SQL语句的执行效率,特别是在OLTP系统中,这种方法对于提升系统的整体性能具有重要意义。
标题与描述中的“SQL绑定变量”这一知识点,主要聚焦于SQL语句中如何使用变量,尤其是在存储过程或函数中动态构建SQL语句...对于任何从事数据库开发或维护的专业人士来说,掌握绑定变量的使用方法都是必不可少的技能。
在Oracle数据库的PL/SQL环境中,绑定变量是一种优化SQL语句执行效率的重要技术。它主要应用于动态SQL或者多次执行的SQL语句,以...因此,理解和熟练掌握绑定变量的使用对于任何Oracle数据库开发者来说都是至关重要的。
### Oracle BIEE 变量总结与应用 #### 一、引言 Oracle Business Intelligence Enterprise Edition (BIEE) 是一款强大的商业智能工具,能够帮助组织机构从数据中提取价值并做出更好的决策。在 BIEE 的开发过程中,...
绑定变量的使用遵循了Oracle Shared Pool的设计理念,提高了SQL语句的复用性和系统整体性能。因此,在开发Java应用程序并与Oracle数据库交互时,应尽可能使用绑定变量,以优化数据库操作,提升系统效率。
动态SQL与绑定变量是数据库编程中的重要概念,尤其在Oracle数据库中被广泛应用。动态SQL允许在运行时构建和执行SQL语句,而绑定变量则是在动态SQL中用于替代具体值的占位符,使得SQL语句更为灵活和高效。 ### 1. ...
在 Oracle 中,使用 Using 语句可以实现动态 SQL 的绑定变量,提高 SQL 语句的灵活性和安全性。本文将对 Oracle 中 Using 用法进行详细的介绍,并提供实际开发的示例和技巧。 一、静态 SQL 和动态 SQL 在 Oracle ...
本文将围绕“Java代码绑定时间”这一主题,深度剖析在Java程序中使用Oracle绑定变量的必要性及其对数据库性能的影响。 #### 一、硬解析与软解析:数据库性能的双刃剑 在Oracle数据库中,SQL语句的执行通常涉及两个...
- 解释了连接字符串的使用方法和连接池的概念。 - 涉及了数据库驻留连接池(Database Resident Connection Pooling, DRCP)。 - 还有代理认证、外部认证和特权连接的建立方法。 ### 4. 连接池与安全连接...
为了优化执行计划,我们可以使用绑定变量、减少硬解析、配置 session_cached_cursors、高速缓存游标等方法。 绑定变量 使用绑定变量可以减少硬解析的数量。例如,在 SQL 语句中使用绑定变量 `:empno` 代替硬编码的...
3. **绑定变量**:使用绑定变量可以避免硬解析,提高SQL语句的重用性,减少解析开销。当SQL语句中的参数用绑定变量替代时,数据库只需解析一次,后续相同结构的查询将共享同一个执行计划。 4. **分区技术**:在大型...
本文将从 SQL 调优、执行计划、索引、绑定变量、执行计划稳定性、排序相关内存等方面对 Oracle DBA 面试题进行总结和解释。 一、SQL 调优 SQL 调优是 Oracle DBA 的核心任务之一。如何查看 SQL 的执行计划是 DBA ...
综上所述,Oracle数据库查询优化涉及多个层面,包括SQL编写、索引设计、执行计划分析、绑定变量使用、物理设计优化、统计信息维护和资源管理工具的应用。掌握这些方法并灵活运用,可以显著提升Oracle数据库的运行...
本文总结了 Oracle 数据库管理员(DBA)面试中的一些重要知识点,从表连接方式、执行计划、CBO 和 RBO、SQL 调整、索引、绑定变量、执行计划、排序等方面进行了详细的解释。 一、表连接方式 在 Oracle 中,表连接...
cx_Oracle模块还包含一些实用工具和扩展方法,例如cx_Oracle.Binary()用于创建二进制字符串值对象,cx_Oracle.clientversion()用于返回所使用的客户端库版本信息。请注意,cx_Oracle.clientversion()是一个扩展方法...