Oracle的优化器有两种优化方式(二)
15. /*+USE_CONCAT*/
对查询中的WHERE后面的OR条件进行转换为UNION ALL的组合查询. (懵懂啊,先存着)
例如:
select /*+use_concat */ * from emp where deptno=10 OR empno=7788;
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=2 Bytes=174)
1 0 TABLE ACCESS (FULL) OF 'EMP' (Cost=2 Card=2 Bytes=174)
16. /*+NO_EXPAND*/
对于WHERE后面的OR 或者IN-LIST的查询语句,
NO_EXPAND将阻止其基于优化器对其进行扩展.
SELECT /*+NO_EXPAND*/ * from EMP WHERE DEPTNO=10 AND job='MANAGER';
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=1 Bytes=87)
1 0 TABLE ACCESS (FULL) OF 'EMP' (Cost=2 Card=1 Bytes=87)
17. /*+NOWRITE*/
禁止对查询块的查询重写操作.
18. /*+REWRITE*/
可以将视图作为参数.
19. /*+MERGE(TABLE)*/
能够对视图的各个查询进行相应的合并.
20. /*+NO_MERGE(TABLE)*/
对于有可合并的视图不再合并.
21. /*+ORDERED*/
根据表出现在from中的顺序,ORDERED使ORACLE依此顺序对其连接.
SELECT /*+ORDERED*/ D.DNAME, E.ENAME,E.SAL from EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO;
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=5 Card=82 Bytes=4510)
1 0 HASH JOIN (Cost=5 Card=82 Bytes=4510)
2 1 TABLE ACCESS (FULL) OF 'EMP' (Cost=2 Card=82 Bytes=2706)
3 1 TABLE ACCESS (FULL) OF 'DEPT' (Cost=2 Card=82 Bytes=1804)
兑换下EMP和DEPT的顺序,得到
SELECT /*+ORDERED*/ D.DNAME, E.ENAME,E.SAL from DEPT D, EMP E WHERE E.DEPTNO=D.DEPTNO;
Execution Plan
--------------------
相关文档:
t表中将近有1100万数据,很多时候,我们要进行字符串匹配,在SQL语句中,我们通常使用like来达到我们搜索的目标。但经过实际测试发
现,like的效率与instr函数差别相当大。下面是一些测试结果:
SQL> set timing on
SQL> select count(*) from t where instr(title,’手册’)>0;
COUNT(*)
&mdash ......
1,查看当前的保护模式
select DATABASE_ROLE,PROTECTION_MODE,PROTECTION_LEVEL from v$database;
2,查看日志的传送方式;
select dest_name,archiver from v$archive_dest;
3,停止standby的自动恢复状态
alter database recover manager standby database finish;
4,添加standby logfile
&nb ......
一:无返回值的存储过程
1、建立存储过程
CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS
BEGIN
INSERT INTO T_TEST (I_ID,I_NAME) VALUES (PARA1, PARA2);
END TESTA;
2、相应的JAVA程序
import java.sql.*;
import java.io.OutputStream;
import java.io.Writer;
import java.sq ......