RE: [PEAR-DEV] Re: [metabase-dev] numRows in the oracle driver
| From: | Lukas Smith | Date: | Tue, 11 Mar 2003 18:19:28 +0000 |
| Subject: | RE: [PEAR-DEV] Re: [metabase-dev] numRows in the oracle driver | ||
| References: | 1 | Groups: | php.pear.dev |
| Request: | Send a blank email to pear-dev+get-14204@lists.php.net to get a copy of this message | ||
> -----Original Message-----
> From: Manuel Lemos [mailto:mlemos@acm.org]
> Sent: Tuesday, March 11, 2003 6:29 PM
> On 03/11/2003 11:32 AM, Lukas Smith wrote:
> >>>If people want to traverse the result set more than once they can
> >
> > just
> >
> >>>do just that by using one of the bulk fetching methods. Then they
> >
> > have
> >
> >>>the data in an array with which they can do whatever they want.
> >>
> >>That is not the same thing. For database API like MySQL that already
> >>does their own buffering you are making the application spend more
> >>memory using bulk fetching.
> >
> >
> > Well I don't remember how this is handled in Metabase, but in MDB/DB
the
> > result set is freed after the bulk fetching. So once the entire
result
> > set is traversed you will only have the array.
>
> It is the same thing but the problem is that until the result set is
> freed you will be occupying the memory for the result set buffer and
the
> fetched array. Since allocated memory is not really freed until the
> process ends, the memory footprint remains high for large result sets.
Ok I understand.
> For MySQL it requires some work to make it work as with Oracle and
> others. The greatest problem is that only one unbuffered query may be
> run at a given time until it is freed.
Yeah :-/
Regards,
Lukas