do I interprete regexp_like (t1.name,t2.provname,'i') as
that you want comparing the to columns case-insenstive ?
In that case you could also use
where UPPER(t1.name) = UPPER(t2.provname);
You would stil have your cartesian product.
1 step further would be to define a function based index
with column UPPER(name) on t1
or
with column UPPER(provname) on t2
That wil cost time to create and diskspace to store,
but after computing statistics the full-table access on both tables should be replace by
1 full table and 1 new-index access.
You can also create both indexes and let Oracle seek out the best approach.
Main Topics
Browse All Topics





by: paquicubaPosted on 2009-10-16 at 10:29:16ID: 25591518
If you don't have a join key, then all you can do is to use t1.name & t2.provname. I would use the regular LIKE operator (faster) in your case, unless you're doing somthing fancy.
Try using PARALLEL hint...
Good Luck!