Howdy,
These are all tradeoffs, as there are with almost every real-life design
decision.  With well-maintained modern databases, even complicates
queries can run very quickly.  This extra row count query, as I said
originally, is a way to get the result count without getting the actual
full result set.  It's useful in some cases and not in others.

If you have potentially large results to your queries, this is a prudent
approach that slightly sacrifices performance for
stability/availability.  I.e. it might run a little slower, but it won't
crash.

Yoav Shapira
Millennium ChemInformatics


>-----Original Message-----
>From: Hart, Justin [mailto:[EMAIL PROTECTED]
>Sent: Friday, October 17, 2003 5:15 PM
>To: Tomcat Users List
>Subject: RE: Java/JSP/Servlet Programmer [off topic]
>
>But what if it's a busy database, or the query is complex?
>
>-----Original Message-----
>From: Shapira, Yoav [mailto:[EMAIL PROTECTED]
>Sent: Friday, October 17, 2003 5:13 PM
>To: Tomcat Users List
>Subject: RE: Java/JSP/Servlet Programmer [off topic]
>
>
>
>Howdy,
>
>>Yeah, but that means you have to run the query twice.
>
>Yup, it does.  There are cases when that's extremely useful if the
query
>result set is large: you might not want to load it into memory, or
>modify the query, so that you don't run out of heap memory.
>
>Yoav Shapira
>
>>
>>-----Original Message-----
>>From: Shapira, Yoav [mailto:[EMAIL PROTECTED]
>>Sent: Friday, October 17, 2003 4:54 PM
>>To: Tomcat Users List
>>Subject: RE: Java/JSP/Servlet Programmer [off topic]
>>
>>
>>
>>Howdy,
>>I too don't think ResultSetMetaData has row count.
>>
>>There's also the hackish but usually OK approach which wraps the SQL
>>query in select count(*).  This has the advantage of giving you just
>the
>>row count without the whole (potentially huge) result set.  Something
>>like:
>>
>>int getRowCount(Connection connection, String sql) {
>>  String countSql = "select count(*) from (" + sql + ")";
>>  Statement stmt = connection.createStatement();
>>  ResultSet rs = stmt.executeQuery(countSql);
>>  rs.next();
>>  return rs.getInt(1);
>>}
>>
>>Or something like that...
>>
>>Yoav Shapira
>>Millennium ChemInformatics
>>
>>
>>>-----Original Message-----
>>>From: Hart, Justin [mailto:[EMAIL PROTECTED]
>>>Sent: Friday, October 17, 2003 4:49 PM
>>>To: Tomcat Users List
>>>Subject: RE: Java/JSP/Servlet Programmer [off topic]
>>>
>>>I thought that resultsetmetadata had column count, but not row count.
>>If
>>>it has row count, then I am distinctly interested.
>>>-----Original Message-----
>>>From: Brendle, Douglas A. [mailto:[EMAIL PROTECTED]
>>>Sent: Friday, October 17, 2003 4:45 PM
>>>To: Tomcat Users List
>>>Subject: RE: Java/JSP/Servlet Programmer [off topic]
>>>
>>>
>>>Have you tried using ResultetMetaData to get row count BEFORE you
>>>process the Resultset?
>>>
>>>-----Original Message-----
>>>From: epyonne [mailto:[EMAIL PROTECTED]
>>>Sent: Friday, October 17, 2003 3:44 PM
>>>To: Tomcat Users List
>>>Subject: Re: Java/JSP/Servlet Programmer [off topic]
>>>
>>>
>>>Pardon me that it is off topics....
>>>
>>>Speaking about re-usable ResultSet, I am having a little problem with
>a
>>>ResultSet and I cannot find the solution.
>>>
>>>I have a routine in my servlet to call an Oracle stored procedure,
>>using
>>>CallableStatement.  Everything works fine.  Then, I want to get the
>row
>>>count of the ResultSet.  I can do that by using the rs.last() method.
>>>However, that requires the ResultSet to be scrollable.  So I change
>the
>>>code
>>>accordingly.  After that, I keep getting the error message of:
>>>SQLException: Invalid operation of forward only resultset: last
>>>
>>>I can't figure out why.  I thought I have defined the ResultSet to be
>>>scrollable already.  The following is the snippets:
>>>//code begins------------------------------
>>>DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
>>>String url = "jdbc:oracle:thin:@..........";
>>>conn = DriverManager.getConnection(url,........);
>>>String plsql = "begin <my stored procedure>(?,?,?); end;";
>>>CallableStatement cs = conn.prepareCall(plsql,
>>>          ResultSet.TYPE_SCROLL_INSENSITIVE,
>>ResultSet.CONCUR_UPDATABLE);
>>>cs.registerOutParameter(1, OracleTypes.CURSOR);
>>>cs.setString(2, InputParam1);
>>>cs.registerOutParameter(3, Types.INTEGER);
>>>cs.execute();
>>>ResultSet rs = null;
>>>rs = (ResultSet)cs.getObject(1);
>>>rs.last();
>>>//code ends------------------------------------
>>>
>>>Any help will be very much appreciated.
>>>
>>>
>>>
>>>----- Original Message -----
>>>From: "Mike Curwen" <[EMAIL PROTECTED]>
>>>To: "'Tomcat Users List'" <[EMAIL PROTECTED]>
>>>Sent: Friday, October 17, 2003 03:12 PM
>>>Subject: RE: Java/JSP/Servlet Programmer
>>>
>>>
>>>> I would send y'all my resume, but ever since the humiliation of the
>>>> re-usable ResultSet, I'm sure I'm one of those that can't walk yet.
>>;)
>>>>
>>>>
>>>>
>>>> > -----Original Message-----
>>>> > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
>>>> > Sent: Friday, October 17, 2003 3:08 PM
>>>> > To: Tomcat Users List
>>>> > Subject: RE: Java/JSP/Servlet Programmer
>>>> >
>>>> >
>>>> > I agree. I'm getting funds to hire a new person and I dread it.
>>I've
>>>> > screened a lot of people on the last time I hired someone an
>>>> > still got a
>>>> > lemon. Lot's of people talk to talk, but can't even walk yet.
>>>> >
>>>> >
>>>> > Thank You,
>>>> >
>>>> > Justin A. Stanczak
>>>> > Web Manager
>>>> > Shake Learning Resource Center
>>>> > Vincennes University
>>>> > (812)888-5813
>>>> >
>>>> >
>>>> >
>>>> >
>>>> > "Hart, Justin" <[EMAIL PROTECTED]>
>>>> > 10/17/2003 03:00 PM
>>>> > Please respond to "Tomcat Users List"
>>>> >
>>>> >
>>>> >         To:     "Tomcat Users List"
>><[EMAIL PROTECTED]>
>>>> >         cc:
>>>> >         Subject:        RE: Java/JSP/Servlet Programmer
>>>> >
>>>> >
>>>> > That's what I've found.  The market is full of tech workers, but
>>that
>>>> > doesn't mean that they're a programmer, or as familiar with
>>>> > technology X
>>>> > (for position Y) as they should be.  I went to a job fair a
>>>> > couple years
>>>> > ago for 4 job opennings, 2 for programmers.  2 for techs.
>>>> > 1000 people
>>>> > showed up, and I spoke with only 4-5 that I really thought
>>>> > qualified for
>>>> > the programming jobs or had credentials that showed that they
>>>> > qualified
>>>> > for the job.
>>>> >
>>>> > -----Original Message-----
>>>> > From: Ruben Gamez [mailto:[EMAIL PROTECTED]
>>>> > Sent: Friday, October 17, 2003 3:57 PM
>>>> > To: Tomcat Users List
>>>> > Subject: RE: Java/JSP/Servlet Programmer
>>>> >
>>>> >
>>>> > I would think so, but it's true.  I've gotten several people
>>>> > that interview well, but none that can pass a couple of
>>>> > simple tests (I consider them simple).
>>>> >
>>>> > -----Original Message-----
>>>> > From: epyonne [mailto:[EMAIL PROTECTED]
>>>> > Sent: Friday, October 17, 2003 3:55 PM
>>>> > To: Tomcat Users List
>>>> > Subject: Re: Java/JSP/Servlet Programmer
>>>> >
>>>> > Cannot find anyone?!?!?!  It is rather hard to believe based
>>>> > on current job market.
>>>> >
>>>> >
>>>> > ----- Original Message -----
>>>> > From: "Ruben Gamez" <[EMAIL PROTECTED]>
>>>> > To: <[EMAIL PROTECTED]>
>>>> > Sent: Friday, October 17, 2003 02:33 PM
>>>> > Subject: Java/JSP/Servlet Programmer
>>>> >
>>>> >
>>>> > I'm looking for an experienced JSP/Servlet programmer located
>>>> > in our area.  We're located in West Palm Beach, FL.  We've
>>>> > tried posting the Job on Monster, and looking for candidates
>>>> > on there, but still cannot find someone that can do the job.
>>>> >
>>>> >
>>---------------------------------------------------------------------
>>>> > To unsubscribe, e-mail:
[EMAIL PROTECTED]
>>>> > For additional commands, e-mail:
>>[EMAIL PROTECTED]
>>>> >
>>>> >
>>>> >
>>>> >
>>---------------------------------------------------------------------
>>>> > To unsubscribe, e-mail:
[EMAIL PROTECTED]
>>>> > For additional commands, e-mail:
>>[EMAIL PROTECTED]
>>>> >
>>>> >
>>>> >
>>---------------------------------------------------------------------
>>>> > To unsubscribe, e-mail:
[EMAIL PROTECTED]
>>>> > For additional commands, e-mail:
>>[EMAIL PROTECTED]
>>>> >
>>>> >
>>>> >
>>>> >
>>>>
>>>>
>>>>
>---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>> For additional commands, e-mail:
[EMAIL PROTECTED]
>>>>
>>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>>
>>
>>This e-mail, including any attachments, is a confidential business
>>communication, and may contain information that is confidential,
>>proprietary and/or privileged.  This e-mail is intended only for the
>>individual(s) to whom it is addressed, and may not be saved, copied,
>>printed, disclosed or used by anyone else.  If you are not the(an)
>intended
>>recipient, please immediately delete this e-mail from your computer
>system
>>and notify the sender.  Thank you.
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
>This e-mail, including any attachments, is a confidential business
>communication, and may contain information that is confidential,
>proprietary and/or privileged.  This e-mail is intended only for the
>individual(s) to whom it is addressed, and may not be saved, copied,
>printed, disclosed or used by anyone else.  If you are not the(an)
intended
>recipient, please immediately delete this e-mail from your computer
system
>and notify the sender.  Thank you.
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]




This e-mail, including any attachments, is a confidential business communication, and 
may contain information that is confidential, proprietary and/or privileged.  This 
e-mail is intended only for the individual(s) to whom it is addressed, and may not be 
saved, copied, printed, disclosed or used by anyone else.  If you are not the(an) 
intended recipient, please immediately delete this e-mail from your computer system 
and notify the sender.  Thank you.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to