Oracle运行一段时间后,系统会自动给出一些调优建议,放在dba_advisor_actions视图中,视图的几个主要字段见下:
task_name --优化任务名
execution_name --执行名
object_id --对象ID
command --使用的命令
attr1 --具体命令:如,alter table xxx shrink space
attr2 --具体命令:如,alter table xxx shrink space compact
attr3 --具体命令:如,alter table xxx enable row movement
attr4
attr5 --索引建议。当attr4 = BTREE时,attr5给出的是需要建索引的列名,attr3是表名
attr6
message --优化的中文说明
--查看系统自动优化建议(报告前一天的),‘SYS_AUTO_SQL_TUNING_TASK‘是系统自定义的
select dbms_sqltune.report_tuning_task(‘SYS_AUTO_SQL_TUNING_TASK‘) from dual;
--查看一个范围内的报告,begin_exec和end_exec取自execution_name 字段的值
select dbms_sqltune.report_auto_tuning_task(begin_exec => ‘EXEC_5815‘,end_exec => ‘EXEC_6166‘) from dual;
--查看execution_name的调优报告
select dbms_sqltune.report_tuning_task(task_name => ‘SYS_AUTO_SQL_TUNING_TASK‘, execution_name => ‘EXEC_6166‘) from dual;
--查看某个对象的调优报告,取object_id 的值
select dbms_sqltune.report_auto_tuning_task(object_id => ‘33075‘) from dual;
通过上面的调优建议,就可以参照加以实施优化了(以上在有DBA权限的账户下执行)。