手工收集統計資訊及立即產生新的執行計劃
實際工作上用的較多的就是臨時手工收集下某張表的統計資訊並希望後續sql立即生成新的執行計劃。方法有如下兩種,推薦用dbms_stats,遇到CHAINED ROWS和CLUSTER TABLE就必須使用analyze,且analyze不受任何引數限制執行後立即會清除shared pool中該物件的遊標,而dbms_stats則受引數控制。
生產環境上是不可能去執行alter system flush shared_pool以便讓sql立即生成新的執行計劃的
一:SQL> analyze table my_table compute statistics;
analyze table 一般可以指定分析表、所有欄位、所有索引欄位、所有索引。 若不指定則全部都分析。
上面語句等價於:
SQL> analyze table my_table compute statistics for table for all indexes for all columns;
二:SQL>exec dbms_stats.gather_table_stats('HR','T1',cascade=>true, no_invalidate=>FALSE);
Cascade選項:預設值是DBMS_STATS.AUTO_CASCADE。手工操作時一般時候設定為true,把索引也收集了
no_invalidate選項:預設值是DBMS_STATS.AUTO_INVALIDATE。手工操作時一般時候設定為false,讓之後的sql立即生成新的執行計劃。
true:當收集完統計資訊後,收集物件的cursor不會失效(不會產生新的執行計劃,子游標)
false:當收集完統計資訊後,收集物件的cursor會立即失效(新的執行計劃,新的子游標)
DBMS_STATS.AUTO_INVALIDATE:收集後,收集物件的cursor在一段時間後失效,時間受引數_optimizer_invalidation_period控制,預設是18000秒即5小時
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2120194/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 產生AWR及單個sql的執行計劃SQL
- MES製造執行系統生產計劃管理
- 收集統計資訊中的no_invalidate選項對執行計劃的影響
- Oracle 11g手工收集表統計資訊Oracle
- 【PG執行計劃】Postgresql資料庫執行計劃統計資訊簡述SQL資料庫
- set autotrace on 產生不準確的執行計劃
- 報錯的語句也可以產生執行計劃
- 如何讓Oracle產生預期的執行計劃(二)Oracle
- 如何讓Oracle產生預期的執行計劃(三)Oracle
- 如何讓Oracle產生預期的執行計劃(一)Oracle
- _optimizer_invalidation_periond導致收集統計資訊後執行計劃沒有改變
- 修改自動收集統計資訊任務的執行時間
- oracle執行計劃與統計資訊的一些總結Oracle
- 【統計資訊】Oracle常用的收集統計資訊方式Oracle
- ORACLE analyse table方式收集表統計資訊導致SQL執行計劃不準確而效能下降OracleSQL
- 生產環境使用10053分析Oracle的執行計劃Oracle
- 執行計劃__獲取方法、檢視執行順序、統計資訊詳解
- Oracle優化案例-統計資訊對執行計劃的影響(十三)Oracle優化
- 統計資訊不正確導致執行計劃的錯誤選擇
- 執行收集統計資訊dbms_stats.gather_table_stats包的bug
- Oracle收集統計資訊Oracle
- Oracle 統計資訊收集Oracle
- 收集oracle統計資訊Oracle
- ORACLE 收集統計資訊Oracle
- 執行計劃-2:檢視更多的資訊
- AWR報告的收集和分析執行計劃的方式
- 通過鎖定表的統計資訊來穩定sql的執行計劃SQL
- 執行計劃-1:獲取執行計劃
- 統計資訊不準確導致執行計劃走了笛卡爾積
- 分析執行計劃優化SQLORACLE的執行計劃(轉)優化SQLOracle
- 收集全庫統計資訊
- mysql如收集統計資訊MySql
- MySQL 5.5 統計資訊收集MySql
- oracle 11g 基數反饋造成同一sql執行產生不同的執行計劃OracleSQL
- 生產sql調優之統計資訊分析SQL
- 微課sql最佳化(3)、統計資訊收集(2)-如何收集統計資訊SQL
- 【YashanDB知識庫】收集分割槽表統計資訊取樣率小於1導致SQL執行計劃走偏SQL
- 執行計劃