The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

<!--  Presentation generated by Internet Assistant for Microsoft PowerPoint 97 -->

<HTML>
<HEAD>

<meta name="GENERATOR" content="Microsoft Internet Assistant for Microsoft PowerPoint 97">
 <TITLE>Web DBI - Browsing pages of results</TITLE> 
</HEAD>

<BODY     >

<CENTER>
<TABLE WIDTH=100%> 
     <TR> <TD WIDTH=100% ALIGN=CENTER>
         <A HREF="sld001.htm">First</A>&nbsp;&nbsp;
         <A HREF="sld072.htm">Previous</A>&nbsp;&nbsp;
         <A HREF="sld074.htm">Next</A>&nbsp;&nbsp;
         <A HREF="sld102.htm">Last</A>&nbsp;&nbsp;
&nbsp;&nbsp;         <A HREF="index.htm">Index</A>&nbsp;&nbsp;
         <A HREF="dbi.perl.org">Home</A>&nbsp;&nbsp;
         <A HREF="tsld073.htm">Text</A>&nbsp;&nbsp;
     </TD> </TR>
     <TR> <TD WIDTH=100% ALIGN=CENTER>
         <IMG SRC="img073.gif" usemap="#Objmap" WIDTH=800 HEIGHT=600 BORDER=0>
     </TD> </TR>
</TABLE>
<P>Slide 73 of 102</P>
</CENTER>
<!-- <UL>
<H2>Web DBI - Browsing pages of results</H2>
</UL></P>
<P><UL>
<LI><H2>Re-execute query each time then count/discard (simple but expensive)
</H2>
<UL>
<LI>works well for small cheap results sets or where users rarely view many pages
<LI>fast initial response, degrades gradually for later pages
<LI>count/discard in server is better but still inefficient for large result sets
<LI>count/discard affected by inserts and deletes from other processes
</UL></UL><UL>
<LI><H2>Re-execute query with where clause using min/max keys from last results
</H2>
<UL>
<LI>works well where original query can be qualified in that way
</UL></UL><UL>
<LI><H2>Select and cache full result rows somewhere for fast access
</H2>
<UL>
<LI>can be expensive for large result sets with big fields
</UL></UL><UL>
<LI><H2>Select and cache only the row keys, fetch full rows as needed
</H2>
<UL>
<LI>optimisation of above, use ROWID if supported, "select … where key in (…)"
</UL></UL><UL>
<LI><H2>If data is static and queries predictable
</H2>
<UL>
<LI>then custom pre-built indexes may be useful
</UL></UL><UL>
<LI><H2>The caches can be stored...
</H2>
<UL>
<LI>on web server, e.g., using DBM file with locking (see also ‘spread’)
<LI>on database server, e.g., using a table keyed by session id</UL></UL></P>
<P>  -->
</Body>
</HTML>