调整目标:
u
1.减少大表全表扫描
u
2.优化索引使用
u
3.减少复杂连接的sql
u
4.减少动态sql的使用
u
5.数据库的优化器
u
跟踪优化SQL语句的方法
评估SQL执行效率
u
u
u
u
u
5.第三方oracle sql 工具 4.Oracle sql Analyze 3.Sql*plus auto trace 2.Sql trace 1.Explain plan
u
Sql*plus auto trace
创建执行计划基础表
>@/oracle/product/9.2.0.4/rdbms/admin/utlxplan
>set autotrace on
第一种情况使用索引
>select count(*) from t_pub_jnl_sav
where tran_date = 37965
and clt_seqno =
‘
999999999000897
’
>Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 INDEX (
UNIQUE SCAN
) OF 'IDXPK_PUB_JNL_SAV' (UNIQUE)
跟踪优化
SQL
语句的方法
u
Sql*plus auto trace
第二钟情况没有使用到索引
>select count(*) from t_pub_jnl_sav
where acc1 = ‘605810000000000000’
u
Execution Plan
u
----------------------------------------------------------
u
0 SELECT STATEMENT Optimizer=CHOOSE
u
SQL使用建议
1)
减少全表扫描
,
充分使用
rowid
或索引
2)
减少相同
sql
访问
ORACLE
的次数
2) TRUNCATE
替代
DELETE
3)
减少包含
like
、
‘
*
’
等
sql
4)
在
select count(*)
选择记录数
,
尽量
select count
索引字段
5)Select list
只
select
你需要的字段