ORACLEパフォーマンスの最適化


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      .                       。