WEB开发网
开发学院数据库Oracle Oracle语句优化规则汇总 阅读

Oracle语句优化规则汇总

 2008-02-19 12:40:52 来源:WEB开发网   
核心提示: 可惜的是ORACLE只对简单的表提供高速缓冲(cache buffering) ,这个功能并不适用于多表连接查询,Oracle语句优化规则汇总(2),数据库管理员必须在init.ora中为这个区域设置合适的参数,当这个内存区域越大,而第二组中的两个语句是不同的(即使在运行时,赋于不同的绑定

可惜的是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语句能否在这两个用户之间共享。

Oracle语句优化规则汇总(1)

C. 两个SQL语句中必须使用相同的名字的绑定变量(bind variables)

例如:第一组的两个SQL语句是相同的(可以共享),而第二组中的两个语句是不同的(即使在运行时,赋于不同的绑定变量相同的值)

a.

  selectpin,namefrompeoplewherepin=:blk1.pin;
  selectpin,namefrompeoplewherepin=:blk1.pin;

Tags:Oracle 语句 优化

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