oracle更新字段和查询效率高的方式

在含有子查询的SQL语句中,要特别注意减少对表的查询。

如:查询

     低效:

          SELECT TAB_NAME

  FROMTABLES

 WHERE TAB_NAME =  (SELECT TAB_NAME

                       FROM TAB_COLUMNS

                      WHEREVERSION=604

                   )

   AND DB_VER=(SELECT DB_VER

                   FROM TAB_COLUMNS

                  WHEREVERSION=604

                 );

     高效:

          SELECT TAB_NAME

  FROMTABLES

 WHERE  (TAB_NAME,DB_VER)=(SELECT TAB_NAME,DB_VER

                                FROM TAB_COLUMNS

                               WHEREVERSION=604

                              );

如:Update 多个Column

     低效:

           UPDATEEMP

   SET  EMP_CAT =(SELECTMAX(CATEGORY)  FROM EMP_CATEGORIES),

      SAL_RANGE =(SELECTMAX(SAL_RANGE)FROM EMP_CATEGORIES)

 WHERE EMP_DEPT =0020;

     高效:

UPDATEEMP

   SET(EMP_CAT, SAL_RANGE)=(SELECTMAX(CATEGORY),MAX(SAL_RANGE)

                                 FROM EMP_CATEGORIES)

                                WHERE EMP_DEPT =0020

                                  );

 

  *上面的2个例子是标准的SQL语法。

猜你喜欢

转载自zyhui98.iteye.com/blog/2102717