Re: Select with qualified join condition / Batch inserts

Поиск
Список
Период
Сортировка
От Gavin Sherry
Тема Re: Select with qualified join condition / Batch inserts
Дата
Msg-id Pine.LNX.4.58.0410152043320.30125@linuxworld.com.au
обсуждение исходный текст
Ответ на Select with qualified join condition / Batch inserts  (Bernd <bernd_pg@genedata.com>)
Ответы Re: Select with qualified join condition / Batch inserts  (Russell Smith <mr-russ@pws.com.au>)
Список pgsql-performance
On Fri, 15 Oct 2004, Bernd wrote:

> Hi,
>
> we are working on a product which was originally developed against an Oracle
> database and which should be changed to also work with postgres.
>
> Overall the changes we had to make are very small and we are very pleased with
> the good performance of postgres - but we also found queries which execute
> much faster on Oracle. Since I am not yet familiar with tuning queries for
> postgres, it would be great if someone could give me a hint on the following
> two issues. (We are using PG 8.0.0beta3 on Linux kernel 2.4.27):
>
> 1/ The following query takes about 5 sec. with postrgres whereas on Oracle it
> executes in about 30 ms (although both tables only contain 200 k records in
> the postgres version).
>
> SQL:
>
> SELECT cmp.WELL_INDEX, cmp.COMPOUND, con.CONCENTRATION
>     FROM SCR_WELL_COMPOUND cmp, SCR_WELL_CONCENTRATION con
>     WHERE cmp.BARCODE=con.BARCODE
>         AND cmp.WELL_INDEX=con.WELL_INDEX
>         AND cmp.MAT_ID=con.MAT_ID
>         AND cmp.MAT_ID = 3
>         AND cmp.BARCODE='910125864'
>         AND cmp.ID_LEVEL = 1;
>
> Table-def:
>         Table "public.scr_well_compound"
>    Column   |          Type          | Modifiers
> ------------+------------------------+-----------
>  mat_id     | numeric(10,0)          | not null
>  barcode    | character varying(240) | not null
>  well_index | numeric(5,0)           | not null
>  id_level   | numeric(3,0)           | not null
>  compound   | character varying(240) | not null
> Indexes:
>     "scr_wcm_pk" PRIMARY KEY, btree (id_level, mat_id, barcode, well_index)

I presume you've VACUUM FULL'd and ANALYZE'd? Can we also see a plan?
EXPLAIN ANALYZE <query>.
http://www.postgresql.org/docs/7.4/static/sql-explain.html.

You may need to create indexes with other primary columns. Ie, on mat_id
or barcode.


> 2/ Batch-inserts using jdbc (maybe this should go to the jdbc-mailing list -
> but it is also performance related ...):
> Performing many inserts using a PreparedStatement and batch execution makes a
> significant performance improvement in Oracle. In postgres, I did not observe
> any performance improvement using batch execution. Are there any special
> caveats when using batch execution with postgres?

The JDBC people should be able to help with that.

Gavin

В списке pgsql-performance по дате отправления:

Предыдущее
От: Reini Urban
Дата:
Сообщение: Re: [pgsql-hackers-win32] Performance on Win32 vs Cygwin
Следующее
От: Manfred Spraul
Дата:
Сообщение: Re: futex results with dbt-3