天天看點

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 Task has reached the time limit for tuning a specific sql.

  The default time limit is 3600 seconds.

  1. Check the current timing:

<code>COLUMN</code> <code>parameter_value FORMAT A30 </code>

<code>SELECT</code> <code>parameter_name, parameter_value </code>

<code>FROM</code> <code>dba_advisor_parameters </code>

<code>WHERE</code> <code>task_name = </code><code>'SYS_AUTO_SQL_TUNING_TASK'</code> 

<code>AND</code> <code>parameter_name </code><code>IN</code> <code>(</code><code>'TIME_LIMIT'</code><code>, </code>

<code>'DEFAULT_EXECUTION_TYPE'</code><code>, </code>

<code>'LOCAL_TIME_LIMIT'</code><code>);</code>

  Then, increase the time:

Using:

<code>BEGIN</code> 

<code>  </code><code>DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER(task_name =&gt; </code><code>'SYS_AUTO_SQL_TUNING_TASK'</code><code>, parameter =&gt; </code><code>'TIME_LIMIT'</code><code>, value =&gt; 7200); </code>

<code>END</code><code>;</code>

<code>/</code>

  意思是背景自動分析sql耗時超過了預設的時間限制3600s,需要使用DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER包增長時間限制。

  一般在生産上不預設是不開啟SQL TUNING ADVISOR。可以使用下面代碼關閉自動SQL TUNING ADVISOR。

<code>--查詢目前任務狀态</code>

<code>SYS@db2&gt; </code><code>select</code> <code>client_name,status </code><code>from</code> <code>DBA_AUTOTASK_CLIENT;</code>

<code>CLIENT_NAME                                                      STATUS</code>

<code>---------------------------------------------------------------- --------</code>

<code>auto optimizer stats collection                                  ENABLED</code>

<code>auto </code><code>space</code> <code>advisor                                               ENABLED</code>

<code>sql tuning advisor                                               ENABLED</code>

<code>--禁用sql tuning advisor</code>

<code>SYS@db2&gt; </code><code>BEGIN</code>

<code>  </code><code>2  dbms_auto_task_admin.disable(</code>

<code>  </code><code>3      client_name =&gt; </code><code>'sql tuning advisor'</code><code>,</code>

<code>  </code><code>4      operation   =&gt; </code><code>NULL</code><code>,</code>

<code>  </code><code>5      window_name =&gt; </code><code>NULL</code><code>);</code>

<code>  </code><code>6  </code><code>END</code><code>;</code>

<code>  </code><code>7  /</code>

<code>PL/SQL </code><code>procedure</code> <code>successfully completed.</code>

<code>--再次查詢狀态</code>

<code>sql tuning advisor                                               DISABLED</code>

<code>--啟用sql tuning advisor</code>

<code>BEGIN</code>

<code>dbms_auto_task_admin.enable(</code>

<code>    </code><code>client_name =&gt; </code><code>'sql tuning advisor'</code><code>,</code>

<code>    </code><code>operation   =&gt; </code><code>NULL</code><code>,</code>

<code>    </code><code>window_name =&gt; </code><code>NULL</code><code>);</code>

參考文檔:http://blog.chinaunix.net/uid-25528717-id-3172008.html

參考文檔:http://www.cnblogs.com/suredandan/p/3200157.html

參考文檔:http://blog.itpub.net/235507/viewspace-1137629/

官方文檔:http://docs.oracle.com/cd/E11882_01/server.112/e25494/tasks.htm#ADMIN12332

      本文轉自hbxztc 51CTO部落格,原文連結:http://blog.51cto.com/hbxztc/1870577,如需轉載請自行聯系原作者