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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值