Oracle 性能优化-trigger问题
问题现象
:
谓词通过唯一性索引,更新一条记录,耗时很长;
通过
AWR
查看
TOP SQL
,这个UPDATE
SQL
语句逻辑读,物理读等都
非常高;
初步怀疑执行计划出现变化,
index unique scan
变成
table access full
,但是通过
DBA_HIST_SQL_PLAN
发现近期执行计划并没有改变;
通过
10046
查看
SQL
执行计划,显示这个更新语句耗时,逻辑读,物理读等都
非常低;
问题原因
:
触发器导致的;
更新语句
A
执行前,触发了
trigger B
,其中
trigger B
内部执行较慢,导致
A
一直在等待;
由于
trigger B
执行过程中占用大量的资源,在
AWR
中会将
trigger
消耗的资源也加到
update
语句上,有时可能会干扰问题诊断;
问题结论:</