Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Re: Query rewrite help needed

Re: Query rewrite help needed

From: Tim Gorman <Tim_at_SageLogix.com>
Date: Mon, 10 Mar 2003 09:04:23 -0800
Message-ID: <F001.005649DA.20030310090423@fatcity.com>


I'm assuming that the query should read:

    where trunc(d1) = '01-Dec-2002'

instead of:

    where trunc(sysdate) = '01-Dec-2002'

And you can save the separate ANALYZE TABLE command by adding the COMPUTE STATISTICS clause to the CREATE INDEX since 8.1.6, as well...

---

As far as how this works, I'll guess (without taking time to test) that the
9.2 CBO has been fitted to recognize "TRUNC(date-column)" as the functional
equivalent of "date-column >= value and date-column < value+1"?  Question:
does the QUERY_REWRITE_ENABLED parameter have to be enabled for the session
or instance?  Would this functionality still occur if the index had not been
ANALYZEd?  Sorry for not testing it all out myself before asking, but I have
to log off...

----- Original Message -----
To: "Multiple recipients of list ORACLE-L" <ORACLE-L_at_fatcity.com>
Sent: Monday, March 10, 2003 8:23 AM



>
> Tim,
>
> Following your trunc() line, have you come
> across this feature of 9.2 (and some earlier
> versions) -
>
> create index t1_i2 on t1(d1);
> analyze table t1 compute statistics;
>
> select * from t1
> where trunc(sysdate) = '01-Dec-2002';
>
> Execution plan:
> -----------------------
> table access (by index rowid) of 'T1'
> index (range scan) of 'T1_I2' (non-unique)
>
> Note the index name, in particular.
>
> It's another little feature that takes away
> some of the hassle of getting the text
> 'just so'.
>
> How does it do it, you ask ? I'll leave it
> open for a while in case anyone wants to
> have some fun guessing.
>
> All correct answers received by 5 pm (GMT)
> tonight will go into a prize draw.
> Note - Answers must be written on the back
> of a USD$100 bill and delivered by hand to
> the author's bank manager be eligible.
>
>
> Regards
>
> Jonathan Lewis
> http://www.jlcomp.demon.co.uk
>
> Now available One-day tutorials:
> Cost Based Optimisation
> Trouble-shooting and Tuning
> Indexing Strategies
>
> (see http://www.jlcomp.demon.co.uk/tutorial.html )
>
> ____UK_______March 19th
> ____UK_______April 8th
> ____UK_______April 22nd
>
> ____USA_(FL)_May 2nd
>
>
> Next dates for the 3-day seminar:
> (see http://www.jlcomp.demon.co.uk/seminar.html )
>
> ____UK_(Manchester)_May
> ____USA_(CA, TX)_August
>
>
> The Co-operative Oracle Users' FAQ
> http://www.jlcomp.demon.co.uk/faq/ind_faq.html
>
>
> ----- Original Message -----
> To: "Multiple recipients of list ORACLE-L" <ORACLE-L_at_fatcity.com>
> Sent: 10 March 2003 13:43
>
>
> > In the same vein, I'd suggest rewriting:
> >
> > and trunc(a.seg_dep_date_time) = :seg_dep_date
> >
> > as:
> >
> > and a.seg_dep_date_time >= :seg_dep_date
> > and a.seg_dep_date_time < :seg_dep_date + 1
> >
>
>
> --
> Please see the official ORACLE-L FAQ: http://www.orafaq.net
> --
> Author: Jonathan Lewis
> INET: jonathan_at_jlcomp.demon.co.uk
>
> Fat City Network Services -- 858-538-5051 http://www.fatcity.com
> San Diego, California -- Mailing list and web hosting services
> ---------------------------------------------------------------------
> To REMOVE yourself from this mailing list, send an E-Mail message
> to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
> the message BODY, include a line containing: UNSUB ORACLE-L
> (or the name of mailing list you want to be removed from). You may
> also send the HELP command for other information (like subscribing).
>
-- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: Tim Gorman INET: Tim_at_SageLogix.com Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).
Received on Mon Mar 10 2003 - 11:04:23 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US