MS-ACCESS 2010, ODBC 12.01, Out of Memory

Lists: Postg롤 토토SQL : Postg롤
From: "Stefan Wolf" <sw(at)zpmt(dot)de>
To: <pgsql-interfaces(at)lists(dot)postgresql(dot)org>
Subject: MS-ACCESS 2010, ODBC 12.01, Out of Memory
Date: 2020-03-02 14:41:05
Message-ID: 000e01d5f0a0aeec2f0$d0cc48d0$@zpmt.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: Postg롤 토토SQL : Postg롤

Win10-Client: MS-ACCESS 2010 (32-Bit), ODBC-Driver: 12.01

Linux-Server (1): PostgreSQL 12.2

Linux-Server (2): PostgreSQL 9.6

We are currently migrating from PG 9.6. to 12.x.

We've created System-DSNs (PostgreSQL Unicode) with [Defaults] for both
Server.

In MS-ACCESS our biggest Server-Tables (>14.000.000 Rows) can be opened (on
both Servers).

But it takes a lot of time and uses a lot of memory - more than 450MB on the
client and some GB on the server.

The indexes are recognized an filtering is fast.

Trying to open more than one "big table" will result in MS-ACCESS "Out of
memory".

Best regards

-Stefan Wolf-


From: "Pavlo Golub" <pavlo(dot)golub(at)cybertec(dot)at>
To: "Stefan Wolf" <sw(at)zpmt(dot)de>, pgsql-interfaces(at)lists(dot)postgresql(dot)org
Subject: Re: MS-ACCESS 2010, ODBC 12.01, Out of Memory
Date: 2020-03-02 14:43:32
Message-ID: em17d87dc7-445c-42bf-b1d9-e57745f8f3f5@pg-desktop
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-interfaces


------ Original Message ------
From: "Stefan Wolf" <sw(at)zpmt(dot)de>
To: pgsql-interfaces(at)lists(dot)postgresql(dot)org
Sent: 2020-03-02 15:41:05
Subject: MS-ACCESS 2010, ODBC 12.01, Out of Memory

>Win10-Client: MS-ACCESS 2010 (32-Bit), ODBC-Driver: 12.01
>
>Linux-Server (1): PostgreSQL 12.2
>
>Linux-Server (2): PostgreSQL 9.6
>
>
>
>
>
>We are currently migrating from PG 9.6. to 12.x.
>
>
>
>We’ve created System-DSNs (PostgreSQL Unicode) with [Defaults] for both
>Server.
>
>
>
>In MS-ACCESS our biggest Server-Tables (>14.000.000 Rows) can be opened
>(on both Servers).
>
>But it takes a lot of time and uses a lot of memory - more than 450MBon
>the client and some GB on the server.
>
>
>
This is for sure MsAcess problem, and not a bug of PostgreSQL.

>
>
>The indexes are recognized an filtering is fast.
>
>
>
>Trying to open more than one “big table” will result in MS-ACCESS “Out
>of memory”.
>

Sounds like msAccess fetches all rows and put them into memory which is
weird and unwise. Not a bug of PostgreSQL
>
>
>
>
>Best regards
>
>-Stefan Wolf-
>
>
>


From: "Jonah H(dot) Harris" <jonah(dot)harris(at)gmail(dot)com>
To: Pavlo Golub <pavlo(dot)golub(at)cybertec(dot)at>
Cc: Stefan Wolf <sw(at)zpmt(dot)de>, pgsql-interfaces(at)lists(dot)postgresql(dot)org
Subject: Re: MS-ACCESS 2010, ODBC 12.01, Out of Memory
Date: 2020-03-02 15:23:19
Message-ID: CADUqk8VLEc9-DeMu=-_ogg9aD8Jdp1AjW6M84oFz9UeadnnNrg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: Postg토토 꽁 머니SQL :

On Mon, Mar 2, 2020 at 9:43 AM Pavlo Golub <pavlo(dot)golub(at)cybertec(dot)at> wrote:

>
> ------ Original Message ------
> From: "Stefan Wolf" <sw(at)zpmt(dot)de>
> To: pgsql-interfaces(at)lists(dot)postgresql(dot)org
> Sent: 2020-03-02 15:41:05
> Subject: MS-ACCESS 2010, ODBC 12.01, Out of Memory
>
> Win10-Client: MS-ACCESS 2010 (32-Bit), ODBC-Driver: 12.01
>
> Linux-Server (1): PostgreSQL 12.2
>
> Linux-Server (2): PostgreSQL 9.6
>
>
>
>
>
> We are currently migrating from PG 9.6. to 12.x.
>
>
>
> We’ve created System-DSNs (PostgreSQL Unicode) with [Defaults] for both
> Server.
>
>
>
> In MS-ACCESS our biggest Server-Tables (>14.000.000 Rows) can be opened
> (on both Servers).
>
> But it takes a lot of time and uses a lot of memory - more than 450MB on
> the client and some GB on the server.
>
>
> This is for sure MsAcess problem, and not a bug of PostgreSQL.
>

Is it?

>
> The indexes are recognized an filtering is fast.
>
>
>
> Trying to open more than one “big table” will result in MS-ACCESS “Out of
> memory”.
>
>
> Sounds like msAccess fetches all rows and put them into memory which is
> weird and unwise. Not a bug of PostgreSQL
>

Sounds like the ODBC driver configuration isn't using UseDeclareFetch=1
and, as such, is defaulting to Postgres' crappy default
buffer-all-results-on-the-client-at-once protocol - a problem that would
exist in any client software not overriding that behavior.

--
Jonah H. Harris