Thread: Re: [SQL] Cursors

Re: [SQL] Cursors

From
lynch@lscorp.com (Richard Lynch)
Date:
>I am new to Postgre (and databases), and just figuring how to
>use it.  I see numerous references to cursors, but I do not
>understand what they are for.  Could someone point me to someplace
>to read, or give me one paragraph to enlighten me.

Suppose you have a *HUGE* database.  Like Publisher's Clearinghouse you may
already have won a million dollars huge.  If you were going to look at it
on the web, you really, REALLY, *REALLY* don't want to do a query like:

"select * from losers order by lastname, firstname"

It's pretty much guaranteed to choke the machine, eh?  "Imminent Death of
the Internet, Film at 11."

So, you use a cursor.  A cursor allows you to select a specific range
within a large set of records, but also have order by and group by behave
properly.

By creating a cursor and using that cursor in a query, the result set can
be calculated by the backend, but only a tiny fraction of that set will be
transmitted to the the browser at one time.

The backend *MIGHT* even be really smart and not have to do the *WHOLE*
sort, before allowing you to get the first N records, but I dunno about
that for sure.

The details on how to use cursors in PostgreSQL are in the archives, so I
won't repeat them here.

Disclaimer:  Main because I dunno how to use them.  I've never had a db
that large. :-)

--
--
-- "TANSTAAFL" Rich lynch@lscorp.com