Re: Using bind variables for multiple values
Date: Wed, 26 Nov 2008 01:51:46 -0800 (PST)
Message-ID: <4a7b2e28-e10d-4995-917b-6e79e652c5cb@j32g2000yqn.googlegroups.com>
On Nov 26, 7:34 am, Shakespeare <what..._at_xs4all.nl> wrote:
> Robert Klemme schreef:
> > Interesting. Incidentally there is a recent blog post:
>
> >http://jonathanlewis.wordpress.com/2008/11/11/first_rows_n/
>
> Thanks for the link! I wasn't advertising on using first rows,
I just thought the link fits the context. :-)
> but was
> trying to show that the plans depend on statistics and optimizer settings.
Point taken.
> By the way: I noticed in a test database that all selects on constructs
> of table(iset(1,2,3)) boil down to the optimizer guessing 8168 rows...
> no matter what type is used or how many rows/blocks.
Basically I see the same. There is only this anomaly (?) that for "... WHERE id in ( select column_value from table(iset(-1,2,3)) )" it assumes cardinality 255 for table(iset(-1,2,3)):
Join order[2]: KOKBF$[KOKBF$]#1 T1[T1]#0
SORT resource Sort statistics Sort width: 349 Area size: 307200 Max Area size: 61446144 Degree: 1 Blocks to Sort: 13 Row size: 13 Total Rows: 8168 Initial runs: 1 Merge passes: 0 IO Cost / pass: 0 Total IO sort cost: 0 Total CPU sort cost: 9098366 Total Temp space used: 0
Now joining: T1[T1]#0
NL Join
Outer table: Card: 255.25 Cost: 17.56 Resp: 17.56 Degree: 1 Bytes: 2
Inner table: T1 Alias: T1
Access Path: TableScan
NL Join: Cost: 513378.14 Resp: 513378.14 Degree: 1
Cost_io: 497366.00 Cost_cpu: 69106002705 Resp_io: 497366.00 Resp_cpu: 69106002705 Access Path: index (UniqueScan)
Index: SYS_C007309
resc_io: 2.00 resc_cpu: 16313
ix_sel: 1.0000e-06 ix_sel_with_filters: 1.0000e-06
NL Join: Cost: 528.52 Resp: 528.52 Degree: 1 Cost_io: 525.00 Cost_cpu: 15195495 Resp_io: 525.00 Resp_cpu: 15195495Access Path: index (AllEqUnique)
Index: SYS_C007309
resc_io: 2.00 resc_cpu: 16313
ix_sel: 1.0000e-06 ix_sel_with_filters: 1.0000e-06
NL Join: Cost: 528.52 Resp: 528.52 Degree: 1 Cost_io: 525.00 Cost_cpu: 15195495 Resp_io: 525.00 Resp_cpu: 15195495 Best NL cost: 528.52 resc: 528.52 resc_io: 525.00 resc_cpu: 15195495 resp: 528.52 resp_io: 525.00 resp_cpu: 15195495Join Card: 255.25 = outer (255.25) * inner (1000000.00) * sel (1.0000e-06)
Join Card - Rounded: 255 Computed: 255.25
Since I still have no clear idea where this comes from I am a bit wary to use this. Who guarantees that the plan won't degrade?
Kind regards
robert Received on Wed Nov 26 2008 - 03:51:46 CST