WEB开发网
开发学院数据库Oracle Oracle语句优化30个规则详解 阅读

Oracle语句优化30个规则详解

 2008-08-27 12:43:44 来源:WEB开发网   
核心提示: 可惜的是ORACLE只对简单的表提供高速缓冲(cache buffering) ,这个功能并不适用于多表连接查询,Oracle语句优化30个规则详解(2),数据库管理员必须在init.ora中为这个区域设置合适的参数,当这个内存区域越大,换行等),共享的语句必须满足三个条件:A. 字符级的

可惜的是ORACLE只对简单的表提供高速缓冲(cache buffering) ,这个功能并不适用于多表连接查询。

数据库管理员必须在init.ora中为这个区域设置合适的参数,当这个内存区域越大,就可以保留更多的语句,当然被共享的可能性也就越大了。

当你向ORACLE 提交一个SQL语句,ORACLE会首先在这块内存中查找相同的语句。

这里需要注明的是,ORACLE对两者采取的是一种严格匹配,要达成共享,SQL语句必须完全相同(包括空格,换行等)。

共享的语句必须满足三个条件:

A. 字符级的比较:

当前被执行的语句和共享池中的语句必须完全相同。

例如:

 SELECT*FROMEMP;

和下列每一个都不同

   SELECT*fromEMP;
Select*FromEmp;
SELECT*FROMEMP;

B. 两个语句所指的对象必须完全相同:

例如:

用户 对象名 如何访问

   Jacksal_limitprivatesynonym
Work_citypublicsynonym
Plant_detailpublicsynonym
Jillsal_limitprivatesynonym
Work_citypublicsynonym
Plant_detailtableowner

考虑一下下列SQL语句能否在这两个用户之间共享。

SQL 能否共享 原因

select max(sal_cap) from sal_limit; 不能 每个用户都有一个private synonym - sal_limit , 它们是不同的对象

select count(*0 from work_city where sdesc like 'NEW%'; 能 两个用户访问相同的对象public synonym - work_city

select a.sdesc,b.location from work_city a , plant_detail b where a.city_id = b.city_id 不能 用户jack 通过private synonym访问plant_detail 而jill 是表的所有者,对象不同.

上一页  1 2 3 4 5 6 7  下一页

Tags:Oracle 语句 优化

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接