Yes absolutely you are correct.
the problem is scanning by PVC_U1 index is longer than PVC_PK index.
that way even I give it HINT, but oracle always ignored it.

-- 
thanks and regards
ujang | oracle dba
jakarta | http://ora62.wordpress.com

On Tue, Nov 11, 2008 at 10:25 PM, Riyaj Shamsudeen
<[EMAIL PROTECTED]> wrote:
> Hi Ujang
>  Table is an IOT with SEQ as second column and partitioned by SEQ column.
>  So, if secondary index on this IOT is smaller in size, then it is probable
> that cost of that index access is cheaper. Also, plan shows index access
> only. Table blocks are not accessed at all. No sort either.
>  Did I misunderstand the question? What is the problem are you trying to
> resolve here?
>
> Cheers
> Riyaj
> blog: http://orainternals.wordpress.com
>
> Ujang Jaenudin wrote:
>>
>> dear all, (sorry cross posting)
>>
>> oracle 10.1.0.5
>> huge machine :)
>>
>> CREATE TABLE PVC
>> (
>>  ........
>>  CONSTRAINT PVC_PK
>>  PRIMARY KEY
>>  (AN, SEQ, ES, ETI, ER)
>> )
>> ORGANIZATION INDEX   <=== IOT :(
>>  PARTITION BY RANGE (SEQ)
>> ........... (500 partitions even more)
>> )
>> NOPARALLEL;
>>
>>
>> CREATE UNIQUE INDEX PVC_U1 ON PVC
>> (SEQ, ER)
>> LOCAL (
>> ............ (500 partitions even more)
>> )
>> NOPARALLEL;
>>
>>
>> there are more than billion of rows
>>
>> select /*+ use_index(pvc pvc_pk) */ distinct seq from pvc;
>>
>> SELECT STATEMENT ALL_ROWS
>>   PARTITION RANGE ALL
>>      SORT UNIQUE NOSORT
>>         INDEX FULL SCAN INDEX(UNIQUE) PVC_U1
>>
>>
>> so, my question:
>> - why don't oracle utilize "partition key" for this case....
>>  (by not scanning full index will be better, because partition key
>> based on SEQ column).
>>  getting list of partition key is the fastest way :)
>> - even when force using PVC_PK, CBO won't do it, I think scanning Primary
>> key
>>  more efficient rather than roundtrip read PVC_U1 index and then again
>>  read PVC_PK index, due to IOT mapping...
>>
>>
>>
>
>

Kirim email ke