Re: How to force Oracle generate a new execution plan
Date: Thu, 10 Nov 2016 17:49:12 -0500
Message-Id: <EB73499F-9625-4F5E-B95E-8ACA3CFA6298_at_gmail.com>
What version of the database is this? Behavior changes between version.
Flushing shared pool is a workaround depending on your version.
Sent from my iPhone
> On Nov 10, 2016, at 5:12 PM, Eriovaldo Andrietta <ecandrietta_at_gmail.com> wrote:
>
> Hello,
>
> I have a dynamic query that is mounted by a java application.
> This query uses IN (:b1, :b2, :b3 ... :b1000)
>
> When the application submit the sql statment using until 20 bind variables, the return is fast.
> When the application submit the sql statment using more than 20 bind variables, the return is slow, very slow. Here It maybe using a certain bad execution plan.
> The limit of bind variables is 1000.
>
> 1.) How can I do to force Oracle always generate a new execution plan and not reuse the plan that is in cache ?
> 2.) Is there a way to clear a execution plan for a specific sql_id ? (I have the sql_id that supose is with the bad execution plan).
>
> Is there any hint to do it ?
>
> I cannot use:
> alter system flush BUFFER_CACHE;
> alter system flush SHARED_POOL;
> because I will clear all execution plans of the instance. I would like to solve only 1 sql_id.
>
>
> Regards
> Eriovaldo
>
-- http://www.freelists.org/webpage/oracle-lReceived on Thu Nov 10 2016 - 23:49:12 CET