ORACLE多表查询优化
转自某地,对作者很愧疚- -!不晓得地址了..
ORACLE多表查询优化
这里提供的是执行性能的优化,而不是后台数据库优化器资料:
参考数据库开发性能方面的各种问题,收集了一些优化方案统计如下(当然,象索引等优化方案太过简单就不列入了,嘿嘿):
执行路径:ORACLE的这个功能大大地提高了SQL的执行性能并节省了内存的使用:我们发现,单表数据的统计比多表统计的速度完全是两个概念.单表统计可能只要0.02秒,但是2张表联合统计就可能要几十表了.这是因为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 &nbs
相关文档:
oracle 方法 & ......
在程序的开发过程中,处理分页是大家接触比较频繁的事件,因为现在软件基本上都是与数据库进行挂钓的。但效率又是我们所追求的,如果是像原来那样把所有满足条件的记录全部都选择出来,再去进行分页处理,那么就会多多的浪费掉许多的系统处理时间。为了能够把效率提高,所以现在我们就只选择我们需要的数据,减少数据 ......
1.首先需要建立plan table,否则不能使用
建立方法:
$oracle\rdbms\admin下有个
utlxplan.sql
其内容为:
create table PLAN_TABLE (
statement_id varchar2(30),
timestamp date,
remarks varchar2(80),
operat ......
最近有一任务,需要使用Oracle数据库,以前对此不太熟悉,就从网上查找资料,(说实在的网络真是太好了,也多亏了许多的热心的技术人员,愿意把自己的经验和心得与大家分享)并转贴了一个帖子参考,不过此帖子有些地方没有说清楚,确实让我费了好大劲,才测试成功。下面我把我的步骤说明一下:(环境:Windows XP sp2 + vs ......
申明oracle函数,及其结果集结构
结果集必须为全局的、table of 不能用index by
CREATE OR REPLACE TYPE EMPARRAY is object (corporationId number);
CREATE OR REPLACE TYPE EMPARRAY2 is table of EMPARRAY;
create or replace function func_empl return sys_refcursor is
Result sys_refcursor;
......