Oracle 11g 禁用 SQL Tuning Advisor 与 auto space advisor

生产上有一套11g数据库alert.log报错ORA-16957: SQL Analyze time limit interrupt。
  查询MOS相关文档Troubleshooting: ORA-16957: "SQL Analyze time limit interrupt" Errors (文档 ID 1275248.1) 
  The ORA-16957 error is an internal error code used to indicate that SQL Tuning Task has reached the time limit for tuning a specific sql.

The default time limit is 3600 seconds.
  1. Check the current timing:
1234567 COLUMN parameter_value FORMAT A30 
SELECT parameter_name, parameter_value 
FROM dba_advisor_parameters 
WHERE task_name = ‘SYS_AUTO_SQL_TUNING_TASK‘
AND parameter_name IN (‘TIME_LIMIT‘, 
‘DEFAULT_EXECUTION_TYPE‘, 
‘LOCAL_TIME_LIMIT‘);

Then, increase the time:

Using:

BEGIN
  DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER(task_name => ‘SYS_AUTO_SQL_TUNING_TASK‘, parameter => ‘TIME_LIMIT‘, value => 7200); 
END;
/

意思是后台自动分析sql耗时超过了默认的时间限制3600s,需要使用DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER包增长时间限制。
  一般在生产上不默认是不开启SQL TUNING ADVISOR。可以使用下面代码关闭自动SQL TUNING ADVISOR。
--查询当前任务状态
[email protected]> select client_name,status from DBA_AUTOTASK_CLIENT;
 
CLIENT_NAME                                                      STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection                                  ENABLED
auto space advisor                                              ENABLED
sql tuning advisor                                              ENABLED
--禁用sql tuning advisor
[email protected]> BEGIN
  2  dbms_auto_task_admin.disable(
  3      client_name => ‘sql tuning advisor‘,
  4      operation  => NULL,
  5      window_name => NULL);
  6  END;
  7  /
 
PL/SQL procedure successfully completed.
--再次查询状态
[email protected]> select client_name,status from DBA_AUTOTASK_CLIENT;
 
CLIENT_NAME                                                      STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection                                  ENABLED
auto space advisor                                              ENABLED
sql tuning advisor                                              DISABLED
--启用sql tuning advisor
BEGIN
dbms_auto_task_admin.enable(
    client_name => ‘sql tuning advisor‘,
    operation  => NULL,
    window_name => NULL);
END;

原文地址:https://www.cnblogs.com/xibuhaohao/p/11198296.html

时间: 2024-11-12 08:52:01

Oracle 11g 禁用 SQL Tuning Advisor 与 auto space advisor的相关文章

ORACLE 11G 禁用 SQL TUNING ADVISOR

生产上有一套11g数据库alert.log报错ORA-16957: SQL Analyze time limit interrupt. 查询MOS相关文档Troubleshooting: ORA-16957: "SQL Analyze time limit interrupt" Errors (文档 ID 1275248.1) The ORA-16957 error is an internal error code used to indicate that SQL Tuning T

Oracle 11g实时SQL监控 v$sql_monitor

Oracle 11g实时SQL监控: 前面提到,在Oracle Database 11g中,v$session视图增加了一些新的字段,这其中包括SQL_EXEC_START和SQL_EXEC_ID, 这两个字段实际上代表了Oracle 11g的一个新特性:实时的SQL监控(Real Time SQL Monitoring). 在Oracle 11g之前的版本,长时间运行的SQL可以通过监控v$session_longops来观察,当某个操作执行时间超过6秒, 就会被记录在v$session_lo

Oracle调整顾问(SQL Tuning Advisor 与 SQL Access Advisor

在Oracle数据库出现性能问题时,使用Oracle本身的工具包,给出合理的调优建议是比较省力的做法. tuning advisor 是对输入的sql set的执行计划进行优化accsee advisor 是对sql set当前如果引入索引.分区的话,性能有多大的提升,给出建议.sql tuning advisor是从一方面给出的建议,access advisor可以针对一个表或者多个表的所有操作给出分析建议,比如说对于select语句他会建议增加索引,而会降低DML的性能,sql access

【oracle】oracledba6 SQL Tuning sets

You want to use the SQL Tuning Advisor to generate recommendation s for badly written SQL statements in your development environment. W hich three sources can you select for the advisor to analyze? (Choose three.) A. Top SQL B. snapshots C. SQL Tunin

ORACLE 11G SPM(SQL PLAN manager)浅析

11g推出的SPM是一种主动的稳定执行计划的手段,能够保证只有被验证过的执行计划才会被启用.SPM既能够主动的稳定执行计划,又保留了继续使用新的执行效率更高的执行计划的机会. 启用SPM后,每一个SQL都会存在对应的SQL PLAN Baseline,存储在DBA_SQL_PLAN_BASELINES视图. 该视图的enable和accept列均为YES的SQL PLAN Baseline所对应的执行计划才会被执行.如果有超过1个以上的均为YES,那么oracle会选择其中cost值最小的为执行

Statistics gathering and SQL Tuning Advisor

1. https://www.pythian.com/blog/statistics-gathering-and-sql-tuning-advisor/ Our monitoring software found a long running job on one of our client's databases. The job was an Oracle's auto task running statistics gathering for more than 3 hours. I wa

In Oracle 11g, how to change the order of the results of a sql without “order by”?(转)

oracle 11g 当sql语句中不加order by的时候,好像是按rowid的顺序返回结果的.我也看过一些相关的文档,oracle的官方意思就是不加order by,就不保证输出的顺序. 那么,问题来了:如果现在我select XXX,一组结果出来,顺序是.......A....B.....那么接下来我做什么操作,再做同样一句select,怎么才能让结果变成....B...A.....Notice1: 操作中请勿修改表的主键,不要用DDL,只用select * from A;得到结果Not

Oracle 11g系统自己主动收集统计信息的一些知识

在11g之前,当表的数据量改动超过总数据量的10%,就会晚上自己主动收集统计信息.怎样推断10%.之前的帖子有研究过:oracle自己主动统计信息的收集原理及实验.这个STALE_PERCENT=10%,是无法改动的,假设表很大.10%是许多的数据,很有可能造成统计信息不准确. 在11g之后,STALE_PERCENT=10%是能够改动的,分为全局(DBMS_STATS.SET_GLOBAL_PREFS )和表级别(DBMS_STATS.SET_TABLE_PREFS).表级别的设定: 改动为5

Oracle 11g系统自动收集统计信息的一些知识

---11g的是 周一到周五 22:00-2:00 周六周日 6:00-4:00 SELECT w.window_name, w.repeat_interval, w.duration, w.enabled FROM dba_autotask_window_clients c, dba_scheduler_windows w WHERE c.window_name = w.window_name AND c.optimizer_stats = 'ENABLED'; WINDOW_NAME