1. 从多个表中选择记录(表名顺序)
执行顺序为从右往左,即表记录数少的放到右边,即最为基础表。如果有三个以上的表做连接查询,我们将交叉表作为基础表(即被其他表应用的表,即关系表)
2. WHERE子句中的连接顺序
ORACLE按照自左向右的顺序执行,即那些可以过滤掉最大数量记录的条件必须写在WHERE子句的最右边,即末尾。
对于SQL Server有两种说法,第一种:不用考虑顺序,SQLServer会自动执行过滤数据较多的条件;第二种:从左向右的执行顺序。
3.SELECT子句中一定避免使用 ‘ * ‘
注意一定别是用* ,巨耗时。
4. 删除重复记录
避免表中出现重复记录。
Oracle中最高效的删除重复记录方法的例子:
DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP X WHERE X.EMP_NO = E.EMP_NO);
5 尽量多使用COMMIT
只要有可能,在程序中尽量多使用COMMIT, 以便及时释放资源,提高性能。 COMMIT所释放的资源:
第一, 回滚段上用于恢复数据的信息.
第二, 被程序语句获得的锁。
第三, redo log buffer 中的空间
第四, ORACLE为治理上述3种资源中的内部花费