PEPPLER.ORG
Michael Peppler
Sybase Consulting
Menu
Home
Sybase on Linux
Install Guide for Sybase on Linux
General Sybase Resources
General Perl Resources
Freeware
Sybperl
Sybase::Simple
DBD::Sybase
BCP Tool
Bug Tracker
Mailing List Archive
Downloads Directory
FAQs
Sybase on Linux FAQ
Sybperl FAQ
Personal
Michael Peppler's resume

sybperl-l Archive

Up    Prev    Next    

From: Michael Peppler <mpeppler at peppler dot org>
Subject: Re: Moving to a specific row
Date: Aug 31 2000 5:30PM

Jeff Greif writes:
 > I wrote this thing (groaning all the while) because the guy doing the web
 > pages complained about how slow it was to throw away many thousands of rows
 > to get at a page of 100 in the middle of a long result set, when the user
 > clicked Next.  From a forms-based app, I guess you'd use some kind of browse
 > cursor, but the HTTP environment in this case prevented holding the cursor
 > across multiple web pages.  Because there was a user interaction to get each
 > page, efficiency was not a huge concern (at least until hundreds of users
 > start doing it simultaneously).  There's an index on the ordering field, so
 > the basic queries are pretty efficient.  I'm not sure of the FETCH RELATIVE
 > @offset from the cursor though -- even with a server-side cursor it must be
 > pretty bad.

Well...

The correct way to do this in a set-based envionment is to use the
unique primary key in the where clause to get the next X rows of a
request.

So assuming you have an identity column as the primary key, you simply 
remember the last value retrieved for the current page, and when the
user hits "next" you do a request where the primary key > this value.

Pretty straightforward, and fast.

Michael


 > ----- Original Message -----
 > From: "Michael Peppler" 
 > To: "SybPerl Discussion List" 
 > Sent: Thursday, August 31, 2000 9:38 AM
 > Subject: Re: Moving to a specific row
 > 
 > 
 > >
 >  brevity>
 > >
 > > Interesting.
 > >
 > > What does the showplan look like for such a request? (ie - is it
 > efficient?)
 > >
 > > (and no, Sybase does not support this syntax)
 > 

-- 
Michael Peppler         -||-  Data Migrations Inc.
mpeppler@peppler.org    -||-  http://www.mbay.net/~mpeppler
Int. Sybase User Group  -||-  http://www.isug.com
Sybase on Linux mailing list: ase-linux-list@isug.com