ORACLEパフォーマンスの最適化
6114 ワード
1.ORACLE 3
A、RULE ( ) b、COST ( ) c、CHOOSE ( )
, init.ora OPTIMIZER_MODE , RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS 。 SQL (session) 。
(CBO, Cost-Based Optimizer) , analyze , (object statistics) 。
(CHOOSE), analyze 。 table analyze , CBO , , RULE 。
,ORACLE CHOOSE , (full table scan) , CHOOSE , 。
2. Table
ORACLE :
A、
。ORACLE (database block) 。
B、 ROWID
ROWID , , ROWID 。ORACLE (INDEX) (ROWID) 。 ROWID , 。
3. SQL
SQL , ,ORACLE SQL 。 SGA(system global area) (shared buffer pool) 。 , SQL ( ) , , ORACLE 。ORACLE SQL 。
ORACLE (cache buffering), 。
init.ora , , , 。
ORACLE SQL ,ORACLE 。 ,ORACLE , ,SQL ( , )。
init.ora , , , 。
:
A、 : 。
B、 :
C、 SQL (bind variables)。
4. ( )
ORACLE FROM , FROM ( driving table) 。 FROM , 。 ORACLE , 。 , (FROM ) , (FROM ), 。
3 , (intersection table) , 。
5.WHERE
ORACLE WHERE , , WHERE , WHERE 。
6.SELECT ' * '
SELECT COLUMN , SQL '*' 。 , 。 ,ORACLE , '*' , , 。
7.
SQL ,ORACLE : SQL , , , 。 , , ORACLE 。
8. DECODE
DECODE 。
9. ,
, ( )
10.
11. TRUNCATE DELETE
, , (rollback segments ) 。 COMMIT ,ORACLE ( )。
TRUNCATE , 。 , 。 , 。
12. COMMIT
, COMMIT, , COMMIT
COMMIT :
A、 。
B、 。
C、 redo log buffer 。
D、ORACLE 3 。
13.
,count(*) count(1) , , 。 COUNT(EMPNO)
14. Where HAVING
HAVING ,HAVING 。 , 。 WHERE , 。
15.
SQL , 。
16. SQL
17. (Alias)
SQL , Column 。 , Column 。
18. EXISTS IN
, , 。 , EXISTS( NOT EXISTS) 。
19. NOT EXISTS NOT IN
,NOT IN 。 ,NOT IN ( )。 NOT IN , (Outer Joins) NOT EXISTS。
20. EXISTS
, EXISTS
21. EXISTS DISTINCT
( ) , SELECT DISTINCT。 EXIST
22. :
, ,ORACLE B-tree . , . ORACLE Update , ORACLE . . , (primary key) .。 LONG LONG RAW , . , . , , , . , . , , , . INSERT , DELETE , UPDATE 4 , 5 I/O . , .。 .:
ALTER INDEX REBUILD
23.sql
oracle sql ,
24. java “+” !
25 . >= >
: SELECT * FROM EMP WHERE DEPTNO >=4
: SELECT * FROM EMP WHERE DEPTNO >3
, DBMS DEPT 4 DEPTNO=3 DEPT 3 .
26. UNION OR ( )
, UNION WHERE OR . OR . , . column , OR . , LOC_ID REGION . : SELECT LOC_ID , LOC_DESC , REGION FROM LOCATION WHERE LOC_ID = 10 UNION SELECT LOC_ID , LOC_DESC , REGION FROM LOCATION WHERE REGION = “MELBOURNE” : SELECT LOC_ID , LOC_DESC , REGION FROM LOCATION WHERE LOC_ID = 10 OR REGION = “MELBOURNE” OR, .
27. IS NULL IS NOT NULL
,ORACLE . , , . , , . , . : A B , A,B (123,null) , ORACLE A,B (123,null) ( ). ,ORACLE . 1000 , ! , WHERE ORACLE .
: ( ) SELECT … FROM DEPARTMENT WHERE DEPT_CODE IS NOT NULL; : ( ) SELECT … FROM DEPARTMENT WHERE DEPT_CODE >=0;
28. UNION-ALL UNION ( ):
SQL UNION , UNION-ALL , . UNION ALL UNION, . . ,UNION ALL . UNION ALL . UNION , SORT_AREA_SIZE . . SQL
29. WHERE :
SELECT WHERE . . , (1)‘!=' . , , . (2) ‘||' . , . (3) ‘+' . , . (4) , .
30. DISTINCT,UNION,MINUS,INTERSECT,ORDER BY SQL SQL (SORT) . DISTINCT , . , UNION, MINUS , INTERSECT SQL . SORT_AREA_SIZE , UNION , MINUS, INTERSECT ,
31. GROUP BY:
GROUP BY , GROUP BY . 。