2014-09-29 65 views
0

我有一個運行Oracle插入查詢並且它已經忙了將近24小時。
該聲明的SELECT部分成本爲211M。
現在我已經更新了源表的統計數據,成本已經大幅下降到2M。查詢運行時更新Oracle統計信息以提高性能?

我應該停止並重新啓動INSERT語句,還是新的更新統計信息會自動生效並開始加速性能?

我正在使用Oracle 11g。

回答

2

我應該停止並重新啓動INSERT語句,還是新的更新的統計信息會自動生效並開始加速性能?

新的統計信息將在下一次Oracle解析它們時使用。

因此,優化程序無法根據運行時收集的統計信息更新執行計劃,因爲查詢已經解析並且執行計劃已被選中。

你可以期望從12c優化器是adaptive dynamic execution。它有能力根據actual execution statistics在運行時調整計劃。您可以在這裏閱讀更多關於它的信息http://docs.oracle.com/database/121/TGSQL/tgsql_optcncpt.htm