在含有子查询的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语法。