Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> update performance
This is a multi-part message in MIME format.
------=_NextPart_000_0045_01C07A98.0C310250 Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
RE: Date comparison questionI ahve a requirement to update a table using a
joing - details:
Table A: (colA, colB,...): 2 million rows
Table B: (colA, colC,...): 2 milion rows
update cmd:
update tableA A
set colA = (select B.colC fdrom tableB B where B.tableB.colA =
A.tableA.colA )
I tried it in PL/SQL and as the straight SQL but it takes FOREVER without
coming back...
should I be doiing something better?
(I have an index on the two columns on TableB)
Thanks
-Krishna.
-----Original Message-----
From: root_at_fatcity.com [mailto:root_at_fatcity.com]On Behalf Of Krishna
Prasad
Sent: Monday, January 08, 2001 8:41 PM
To: Multiple recipients of list ORACLE-L
Subject: RE: Btmap Index
Thanks - I'll try the Hint - the table has 2 million rows (with about 600 distinct values for this column)
-krishna.
-----Original Message-----
From: root_at_fatcity.com [mailto:root_at_fatcity.com]On Behalf Of Kevin
Kostyszyn
Sent: Monday, January 08, 2001 3:50 PM To: Multiple recipients of list ORACLE-L Subject: Re: Btmap Index
I ran into a similar problem a while back. If the database is set to use the CBO, it might not use the index. Someone on this list gave a great reason why, perhaps the table is just very small and the CBO just decided to do a full table scan instead. You could use a hint and tell it to use rule based on that query and it will use the index on the where clause. That's what I did. The question is, how big is the table and how much data does it have in it? If it is not a lot, there really is nothing to be concerned about. Oh yeah, and almost 100% positive that there is no setting in the init file for the index.
Sincerely,
Kevin
Hi,
Is there any init.ora parameter that needs to be turned to activate bitmap indexes?
I have a bitmap index on one column C1, but when i examine the explain pan of the
query: " select C1, b, c from table TT where C1 in ('dd','ff')" , it looks like it is not using
the index but doing a full table scan...
thanks -krishna -----Original Message----- From: root_at_fatcity.com [mailto:root_at_fatcity.com]On Behalf Of Jacques Kilchoer Sent: Monday, January 08, 2001 2:01 PM To: Multiple recipients of list ORACLE-L Subject: RE: Date comparison question > -----Original Message----- > From: Lisa Yates [mailto:cosnit_at_creighton.edu] > Sent: lundi, 8. janvier 2001 11:27 > > Why doesn't this query ever return... > > where run_date = to_date('01-03-2001 16:34:59','mm-dd-yyyy > hh24:mi:ss') > > but this query does.... > > where to_char(run_date) = to_char(to_date('01-03-2001 > 16:34:59','mm-dd-yyyy hh24:mi:ss')) > > and so does this query.... > > where to_char(run_date,'mm-dd-yyyy hh24:mi:ss') = '01-03-2001 > 16:34:59' Well, I guess my suggestion that run_date may contain a "BCE"
Jacques R. Kilchoër (949) 754-8816 Quest Software, Inc. 8001 Irvine Center Drive Irvine, California 92618 U.S.A. http://www.quest.com
------=_NextPart_000_0045_01C07A98.0C310250 Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD><TITLE>RE: Date comparison question</TITLE> <META content=3D"text/html; charset=3Diso-8859-1" =http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2920.0" name=3DGENERATOR> <STYLE></STYLE> </HEAD> <BODY bgColor=3D#ffffff> <DIV><FONT color=3D#0000ff face=3DArial size=3D2><SPAN =class=3D125045507-10012001>I ahve=20
size=3D2>-----Original Message-----<BR><B>From:</B> root_at_fatcity.com =
[mailto:root_at_fatcity.com]<B>On Behalf Of </B>Kevin = Kostyszyn<BR><B>Sent:</B>=20
Monday, January 08, 2001 3:50 PM<BR><B>To:</B> Multiple recipients = of list=20
ORACLE-L<BR><B>Subject:</B> Re: Btmap Index<BR><BR></DIV></FONT> <DIV><FONT face=3DArial size=3D2>I ran into a similar problem a = while=20
back. If the database is set to use the CBO, it might not use = the=20
index. Someone on this list gave a great reason why, = perhaps the=20
table is just very small and the CBO just decided to do a full table = scan=20
instead. You could use a hint and tell it to use rule based on = that=20
query and it will use the index on the where clause. That's = what I=20
did. The question is, how big is the table and how much data = does it=20
have in it? If it is not a lot, there really is nothing to be=20 concerned about. Oh yeah, and almost 100% positive that there = is no=20
setting in the init file for the index. </FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Sincerely,</FONT></DIV> <DIV><FONT face=3DArial size=3D2>Kevin</FONT></DIV> <BLOCKQUOTE=20
<DIV style=3D"FONT: 10pt arial">----- Original Message ----- = </DIV>
<DIV=20 style=3D"BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: = black"><B>From:</B>=20 <A href=3D"mailto:krishna_at_nehanet.com" = title=3Dkrishna_at_nehanet.com>Krishna=20 Prasad</A> </DIV> <DIV style=3D"FONT: 10pt arial"><B>To:</B> <A=20 href=3D"mailto:ORACLE-L_at_fatcity.com" = title=3DORACLE-L_at_fatcity.com>Multiple=20 recipients of list ORACLE-L</A> </DIV> <DIV style=3D"FONT: 10pt arial"><B>Sent:</B> Monday, January 08, = 2001 5:45=20 PM</DIV> <DIV style=3D"FONT: 10pt arial"><B>Subject:</B> Btmap Index</DIV> <DIV><BR></DIV> <DIV><FONT color=3D#0000ff face=3DArial size=3D2><SPAN=20 class=3D953563822-08012001>Hi,</SPAN></FONT></DIV> <DIV><FONT color=3D#0000ff face=3DArial size=3D2><SPAN=20 class=3D953563822-08012001></SPAN></FONT> </DIV> <DIV><FONT color=3D#0000ff face=3DArial size=3D2><SPAN=20 class=3D953563822-08012001>Is there any init.ora parameter that = needs to be=20 turned to activate bitmap indexes?</SPAN></FONT></DIV> <DIV><FONT color=3D#0000ff face=3DArial size=3D2><SPAN=20 class=3D953563822-08012001>I have a bitmap index on one column C1, = but when=20 i examine the explain pan of the </SPAN></FONT></DIV> <DIV><FONT color=3D#0000ff face=3DArial size=3D2><SPAN=20 class=3D953563822-08012001>query: " select C1, b, c from = table TT=20 where C1 in ('dd','ff')" , it looks like it is not=20 using</SPAN></FONT></DIV> <DIV><FONT color=3D#0000ff face=3DArial size=3D2><SPAN=20 class=3D953563822-08012001>the index but doing a full table=20 scan...</SPAN></FONT></DIV> <DIV><FONT color=3D#0000ff face=3DArial size=3D2><SPAN=20 class=3D953563822-08012001></SPAN></FONT> </DIV> <DIV><FONT color=3D#0000ff face=3DArial size=3D2><SPAN=20 class=3D953563822-08012001>thanks</SPAN></FONT></DIV> <DIV><FONT color=3D#0000ff face=3DArial size=3D2><SPAN=20 class=3D953563822-08012001>-krishna</SPAN></FONT></DIV> <BLOCKQUOTE style=3D"MARGIN-RIGHT: 0px"> <DIV align=3Dleft class=3DOutlookMessageHeader dir=3Dltr><FONT = face=3DTahoma=20 size=3D2>-----Original Message-----<BR><B>From:</B> = root_at_fatcity.com=20 [mailto:root_at_fatcity.com]<B>On Behalf Of </B>Jacques=20 Kilchoer<BR><B>Sent:</B> Monday, January 08, 2001 2:01 = PM<BR><B>To:</B>=20 Multiple recipients of list ORACLE-L<BR><B>Subject:</B> RE: Date = comparison question<BR><BR></DIV></FONT> <P><FONT size=3D2>> -----Original Message-----</FONT> = <BR><FONT=20 size=3D2>> From: Lisa Yates [<A=20 =
<BR><FONT size=3D2>> Sent: lundi, 8. janvier 2001 = 11:27</FONT>=20 <BR><FONT size=3D2>> </FONT><BR><FONT size=3D2>> Why = doesn't this=20 query ever return...</FONT> <BR><FONT size=3D2>> = </FONT><BR><FONT=20 size=3D2>> where run_date =3D to_date('01-03-2001 = 16:34:59','mm-dd-yyyy=20 </FONT><BR><FONT size=3D2>> hh24:mi:ss')</FONT> <BR><FONT = size=3D2>>=20 </FONT><BR><FONT size=3D2>> but this query does....</FONT> = <BR><FONT=20 size=3D2>> </FONT><BR><FONT size=3D2>> where = to_char(run_date) =3D=20 to_char(to_date('01-03-2001</FONT> <BR><FONT size=3D2>>=20 16:34:59','mm-dd-yyyy hh24:mi:ss'))</FONT> <BR><FONT = size=3D2>>=20 </FONT><BR><FONT size=3D2>> and so does this query....</FONT> = <BR><FONT=20 size=3D2>> </FONT><BR><FONT size=3D2>> where=20 to_char(run_date,'mm-dd-yyyy hh24:mi:ss') =3D '01-03-2001 = </FONT><BR><FONT=20 size=3D2>> 16:34:59'</FONT> </P> <P><FONT size=3D2>Well, I guess my suggestion that run_date may = contain a=20 "BCE" (before common era) date was not the answer to your = problem. Maybe=20 I misunderstood the issue. When you say "why doesn't the query = ever=20 return", do you mean it returns zero rows, or do you mean that = the query=20 is taking an abnormally long time? If it's taking an abnormally = long=20 time, an explain plan on the two queries may reveal the=20 cause.</FONT></P> <P><FONT size=3D2>Jacques R. Kilcho=EBr</FONT> <BR><FONT = size=3D2>(949)=20 754-8816</FONT> <BR><FONT size=3D2>Quest Software, Inc.</FONT> = </P> <P><FONT size=3D2>8001 Irvine Center Drive</FONT> <BR><FONT =size=3D2>Irvine,=20 Received on Wed Jan 10 2001 - 01:58:22 CST