Re: maximum number of expressions in a list is 1000

  • From: Sayan Malakshinov <xt.and.r@xxxxxxxxx>
  • To: Michael Dinh <mdinh235@xxxxxxxxx>
  • Date: Thu, 3 Jan 2013 19:28:48 +0400

Michael,

Why do you think that it is because if "IN (...) OR IN (...)"?
imho in your case root of the problem is a plan, not syntax. Could you
show good and bad plans?
My point is that a gtt is not very different from "in list". For
example, nested loop with gtt is like "in list iterator", and "filter"
access with list is not worse than hash/merge join.

On Thu, Jan 3, 2013 at 7:03 PM, Michael Dinh <mdinh235@xxxxxxxxx> wrote:
> Just my 2 cents.
>
> We have developers that are doing the exact same thing. To circumvent
> Oracle's limitation, they use IN (...) OR IN (...) and performance is really
> bad.
>
> Why not just create a temporary table?
>
> On Thu, Jan 3, 2013 at 3:42 AM, Sayan Malakshinov <xt.and.r@xxxxxxxxx>
> wrote:
>>
>> First of all, I want to say, that, although this is a simple solution
>> with minimal changes to the code, but still prefer to use other
>> options such as a collection binding or gtt(but don't forget about
>> cardinality).
>> About limitation: It is described here:
>> http://docs.oracle.com/cd/E14072_01/server.112/e10592/expressions015.htm
>> Quote from it:
>> "A comma-delimited list of expressions can contain no more than 1000
>> expressions. A comma-delimited list of sets of expressions can contain
>> any number of sets, but each set can contain no more than 1000
>> expressions."
>>
>>
>> --
>> Best regards,
>> Sayan Malakshinov
>> Senior performance tuning engineer
>> PSBank
>> Tel: +7 903 207-1576
>> --
>> //www.freelists.org/webpage/oracle-l
>>
>>
>



-- 
Best regards,
Sayan Malakshinov
Senior performance tuning engineer
PSBank
Tel: +7 903 207-1576
--
//www.freelists.org/webpage/oracle-l


Other related posts: