我有一個oracle sql查詢,它有訪問計劃附加到它。如何在不更改sql查詢的情況下更改訪問計劃。我認爲甲骨文有數據庫表存儲SQL ID和計劃ID,更新計劃ID到新計劃ID將強制SQL查詢使用不同的解釋計劃。如何更改oracle解釋計劃爲sql查詢手動
我使用Oracle 10,在這種情況下,我不想觸摸現有的查詢。我將用提示編寫另一個查詢並獲得所需的解釋計劃。現在我將使用解釋計劃的新標記並將其附加到原始的sql id。這是如何做到這一點的邏輯,但我不知道所有表需要更新來實現這一點。第一步:SQLI_D1 - > PLAN_ID1;第二步:SQL_ID2 - > PLAN_ID2; STep3:SQL_ID1 - > PLAN_ID2
爲什麼你想這樣做 - 因爲你認爲Oracle選擇了一個次優計劃? Oracle是否擁有制定合理計劃所需的所有信息 - 特別是統計信息是否最新?或者,如果你使用10g,你是否可能受到綁定變量窺視的困擾? (這對11g來說不是問題)。您可以向優化器提供提示,但這會改變語句,並且通常會隱藏一個潛在問題。 – 2014-09-25 10:19:42