为了不重复解析相同的SQL 语句,在第一次解析之后, ORACLE 将SQL 语句存放在内存中.这
块位于系统全局区域SGA(system global area)的共享池(shared buffer pool)中的内存可以被所有的
数据库用户共享. 因此,当你执行一个SQL 语句(有时被称为一个游标)时,如果它和之前的执行过
的语句完全相同, ORACLE 就能很快获得已经被解析的语句以及最好的执行路径. ORACLE 的这
个功能大大地提高了SQL 的执行性能并节省了内存的使用.可惜的是ORACLE 只对简单的表提
供高速缓冲(cache buffering) ,这个功能并不适用于多表连接查询.
数据库管理员必须在init.ora 中为这个区域设置合适的参数,当这个内存区域越大,就可以保留
更多的语句,当然被共享的可能性也就越大了.
当你向ORACLE 提交一个SQL 语句,ORACLE 会首先在这块内存中查找相同的语句.这里需
要注明的是,ORACLE 对两者采取的是一种严格匹配,要达成共享,SQL 语句必须完全相同(包括空
格,换行等).共享的语句必须满足三个条件:
A.字符级的比较:
当前被执行的语句和共享池中的语句必须完全相同.
例如:
SELECT * FROM EMP;
和下列每一个都不同
SELECT * from EMP;
Select * From Emp;
SELECT * FROM EMP;
B.两个语句所指的对象必须完全相同:
例如:
用户 对象名 如何访问
Jack sal_limit private synonym
Work_city public synonym
Plant_detail public synonym
Jill sal_limit private synonym
Work_city public synonym
Plant_detail table owner
考虑一下下列SQL 语句能否在这两个用户之间共享.
C.两个SQL 语句中必须使用相同的名字的绑定变量(bind variables)
例如:
第一组的两个SQL 语句是相同的(可以共享),而第二组中的两个语句是不同的(即使在运行时,
赋于不同的绑定变量相同的值)
a.
select pin , name from people where pin = :blk1.pin;
select pin , name from people where pin = :blk1.pin;
b.
select pin , name from people where pin = :blk1.ot_ind;
select pin , name from people where pin = :blk1.ov_ind;
分享到:
相关推荐
SQL编辑器是数据库管理系统提供的一种图形化界面,用于编写和执行SQL语句。通过SQL编辑器,用户可以方便地编写和执行SELECT、INSERT、UPDATE和DELETE语句,实现数据库的查询、插入、更新和删除操作。 三、SELECT...
1.选用适合的ORACLE优化器。...3. 共享SQL语句。 4. 选择最有效率的表名顺序(只在基于规则的优化器中有效)。5. WHERE子句中的连接顺序。6.SELECT子句中避免使用 ‘ * ‘ ...(内部涵盖了非常多的优化规则)
10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1...
判断SQL语句是否与共享内存中某一SQL相同Rowid ,Recursive SQL, Row Source ,Predicate Driving Table ,Probed Table等概念4种类型的索引扫描
SQL 性能调优之 Oracle 语句优化 53 个规则详解 Oracle 语句优化是 SQL 性能调优的关键要素之一。以下是 53 个规则详解: 规则 1: 选用适合的 Oracle 优化器 Oracle 的优化器共有 3 种:基于规则(RULE)、基于...
SQL语句优化,个人学习时候总结的东西 。还有几个网上找到的不错的文档。还的东西需要共享。
性能管理 性能问题 调整的方法 SQL优化机制 应用的调整 SQL语句的处理过程 共享SQL区域 SQL语句处理的阶段 共享游标 SQL编码标准 Oracle 优化器介绍 SQL Tunning Tips 优化Tools
oracle sql 优 化 的 53 常 用 技 巧. 1. 选用适合的ORACLE优化器 2. 访问Table的方式 3. 共享SQL语句 -----
SELECT type,--Clerk的类型 sum(virtual_memory_reserved_kb)as vm_Reserved_kb,--保留的内存...sum(shared_memory_reserved_kb)as sm_Reserved_kb,--共享的保留内存 sum(shared_memory_committed_kb)as sm_Committed_k
在平时的日常开发中,由于SQL语句使用不当,执行效率低下,现整理了文档供大家参考,尽可能帮忙新手,实现资源共享;
SQL语句的执行过程 SQL语句的执行过程是指从用户提交SQL语句到数据库系统执行该语句的整个过程。这个过程主要可以分为四个步骤:分析...数据库系统通过使用共享池、硬分析、软分析和优化程序来提高SQL语句的执行效率。
* 使用 SGA 共享池来缓存执行过的 SQL 语句 五、选择最有效率的表名顺序 * ORACLE 的解析器按照从右到左的顺序处理 FROM 子句中的表名 * 选择交叉表作为基础表 六、Where 子句中的连接顺序 * Oracle 采用...
EAS二次开发中DEP在编辑或者列表界面写脚本时可调用的执行sql语句的方法。【本方法仅用于客户端代码中,如果是服务端代码,即对某实体进行DEP拓展,请参照官方出品DEP脚本指南】
*Sql语句中大量使用函数时候会导致很多索引无法使用上,要针对具体问题分析 4.其它 避免使用Select *,因为系统需要去帮你将*转换为所有的列名,这个需要额外去查询数据字典。 Count(1)和Count(*)差别不大。 ...
老师出的一个变态的题目,用T-SQL语句打印的一个杨辉三角,共享给大家
乐优商城2018年最新57期的sql创建文件。因为资料不相符,所以在此分享给大家,有其他需要资料可以提出共享。注:此文件存储在百度云中提供下载。打开txt,复制到浏览器即可下载。
ORACLE SQL 性能优化系列 ...ORACLE SQL 性能优化是一个复杂的过程,需要从多方面入手,选择合适的优化器、访问表的方式、共享 SQL 语句等,并合理地使用其他优化技巧,以提高数据库的性能和效率。
weblogic session共享的sql语句_mysql 官方网站提供了DB2、oracle、sqlserver、 如果想要那些数据库,就去官网上看吧, 我这个是mysql的。 都别下错了!
A、create table B、create C、create database D、drop 5、使用Transact-SQL语句创建数据库时,( )关键字是用于指定数据库的事务日志文件。 A、log on B、primary C、filename D、filegrowth 6、在SQL中,create...
当你向ORACLE提交一个SQL语句,ORACLE会首先在共享内存中查找是否有相同的语句。这里需要注明的是,ORACLE对两者采取的是一种严格匹配,要达成共享,SQL语句必须完全相同。本文介绍了判断SQL语句是否与共享内存中某...