yup bisa dipaksa ternyata, hint saya yg pertama memang salah :)
index_ffs hint doing the jobs pak :)

2008/11/13 rudi kristanto <[EMAIL PROTECTED]>:
> Kalau di-plan-nya nggak muncul tapi ada akses, repot juga troubleshootnya.
> Btw, apakah setelah dengan membetulkan index hint yang sepertinya salah
> syntax tadi, Oracle mau menggunakan PVC_PK ?
>
> --
> Regards,
> Rudi Kristanto.
>
> ________________________________
> From: Ujang Jaenudin <[EMAIL PROTECTED]>
> To: [email protected]
> Sent: Thursday, November 13, 2008 12:20:07
> Subject: Re: [indo-oracle] Re: need enhance feature for CBO :)
>
> ok...thanks pak rudy,
>
> hal yang sama pun dinyatakan salah satu anggota milist oralce-l,
> dan ini factanya dari yg saya ungkapkan ke mereka, dari fakta tsb,
> oracle tidak secara murni mengeluarkan datanya as is dari PVC_U1, tapi
> sepertinya baca dulu ke PK nya setelah baca dari U1.
>
> hi,
>
> this table and its indexes never analyzed, due to huge rows (more than
> billion rows). of course PVC_U1 is smaller physical blocks rather than
> PVC_PK.
>
> from development machine which has <14 million rows (through dba_segments) :
> PVC_PK = 1280 blocks per partitions
> PVC_U1 = 256 blocks per partitions
>
> in development:
>
> select distinct seq from pvc;
> using PVC_U1 with parallel process
> -- > 5 mins never end :)
>
> select /*+ noparallel_index( pvc) */ distinct seq from pvc;
> using PVC_U1 with no parallel process
> -- 3mins 31 sec
>
> select /*+ index_ffs(pvc pvc_pk) */ distinct seq from pvc;
> using PVC_PK with no parallel process
> --46 sec
>
> another parameter : we set dynamic_sampling to 2
>
> --
> thanks and regards
> ujang | oracle dba
> jakarta | http://ora62. wordpress. com
>
> 2008/11/13 rudi kristanto <[EMAIL PROTECTED] com>:
>> Setahu saya partition key tidak disimpan dalam struktur khusus selain
>> dalam
>> data dictionary kecuali partition key tersebut di-index. Jadi menurut saya
>> index yang paling tepat (dari yang tersedia di script create table di
>> bawah)
>> untuk digunakan query tersebut ialah PVC_U1. Index ini cukup efisien untuk
>> menjawab query tersebut, mengingat hanya kolom seq (dan memiliki
>> constraint
>> not null) yang muncul dalam select list sehingga tidak perlu mengakses
>> lagi
>> ke table yang dalam hal ini berupa IOT karena akses ke IOT dengan logical
>> rowid lebih expensive jika dibandingkan rowid akses pada heap organized
>> table.
>>
>> Salah satu keuntungan yang dimiliki PVC_U1 terhadap PVC_PK ialah size-nya
>> yang lebih kecil, jadi besar kemungkinan Oracle memilih PVC_U1 sebagai
>> access path-nya, dengan tujuan meminimalkan pemakaian buffer cache.
>>
>> Karena ditulis sebagai special comment, hint yang salah tidak akan
>> menimbulkan syntax error :) Untuk menggunakan PVC_PK seharusnya hint
>> tersebut berupa /*+ index(PVC PVC_PK) */ tanpa use.
>>
>> Jika saya melihat struktur dari query di bawah, dimana hasil tidak perlu
>> diurutkan (missing order by clause), akan lebih efisien lagi jika index
>> diakses dengan multiblock read, menggunakan hint index_ffs(TABLE_ NAME
>> INDEX_NAME).
>>
>> Saya tidak mengerti yang bapak maksud dengan IOT mapping, akses PVC_U1
>> menimbulkan akses ke PVC_PK, sedangkan dari plan di bawah saya tidak
>> melihat
>> ada akses ke PVC_PK, bisakah tolong dijelaskan ?
>>
>> --
>> Regards,
>> Rudi Kristanto.
>>
>> ____________ _________ _________ __
>> From: Ujang Jaenudin <ujang.jaenudin@ gmail.com>
>> To: Riyaj Shamsudeen <riyaj.shamsudeen@ gmail.com>
>> Cc: Oracle Discussion List <[EMAIL PROTECTED] org>;
>> indo-oracle@ yahoogroups. com
>> Sent: Wednesday, November 12, 2008 13:23:20
>> Subject: [indo-oracle] Re: need enhance feature for CBO :)
>>
>> 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
>> <riyaj.shamsudeen@ gmail.com> 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...
>>>>
>>>>
>>>>
>
>
> New Email names for you!
> Get the Email name you&#39;ve always wanted on the new @ymail and
> @rocketmail.
> Hurry before someone else does!
> http://mail.promotions.yahoo.com/newdomains/aa/
>
> [Non-text portions of this message have been removed]
>
> 



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

Kirim email ke