15 ORACLE简单性能优化

一。仅是简单调优,并非专业

1.避免过多使用通配符“*”来查询,如果有明确的列查询目标的话。可以在sqlplus中‘SET TIMING ON’来显示sql执行时间,也可以直接在plsql中看到语句执行时间。

2.尽可能减少记录集行数。 使用where ...  order by,然后rownum

3.使用ROWID高效删除重复记录

DELETE FROM STU A WHERE A.ROWID>
(SELECT MIN(B.ROWID) FROM STU B WHERE A.NO=B.NO);
--如有大量重复,使用:
DELETE FROM STU A WHERE A.ROWID NOT IN
(SELECT MIN(B.ROWID) FROM STU B WHERE A.NO=B.NO)

4.使用TRUNCATE替代DELETE删除记录  尽量多使用COMMIT(释放资源),避免使用HAVING,distinct(使用子查询和分组)

5.高效统计记录行数

--普通(数据量很大不适用)
SELECT COUNT(*) FROM STU;
--优化(查询系统表)
SELECT TABLE_NAME,NUM_ROWS FROM USER_TABLES WHERE TABLE_NAME='STU';

6.用EXISTS代替IN    用>=替代>(前者无需逐行比较)   使用WHERE子句优化GROUP BY

   用索引提高检索效率 避免在索引上运算 索引列上用UNION替OR(多个索引)  避免在索引上用IS NULL

 

你可能感兴趣的:(oracle数据库,Oracle数据库系列学习,性能优化,oracle语句优化)