Re: BUG #1410: Hibernate PerformanceTest is incredibly slow - Mailing list pgsql-bugs

From Oliver Jowett
Subject Re: BUG #1410: Hibernate PerformanceTest is incredibly slow
Date
Msg-id 41F03C9B.6040300@opencloud.com
Whole thread Raw
In response to BUG #1410: Hibernate PerformanceTest is incredibly slow (in effect unusable)  ("Simon Nicholls" <simon@mintsource.org>)
Responses Re: BUG #1410: Hibernate PerformanceTest is incredibly slow
List pgsql-bugs
Simon Nicholls wrote:

> Bug reference:      1410
> PostgreSQL version: PostgreSQL 8.0
> Operating system:   WindowsXP
> Description:        Hibernate PerformanceTest is incredibly slow (in effect
> unusable)

> 00:41:41,453 DEBUG SchemaExport:136 - drop table Simple
> 00:41:41,500 DEBUG SchemaExport:154 - create table Simple (
>    id_ int8 not null,
>    name varchar(255),
>    address varchar(255),
>    count_ int4 not null unique,
>    date_ timestamp,
>    pay float4,
>    other int8,
>    primary key (id_)
> )
> 00:41:41,656 DEBUG SchemaExport:154 - alter table Simple add constraint
> FK939D1DD26527F10 foreign key (other) references Simple

Without an index on Simple.other, DELETEs on Simple can be slow (each
change requires a seqscan over Simple to check the FK constraint). It
looks like Hibernate's postgresql dialect code does not add an index in
this case.

If I patch Hibernate to not add a FK constraint at all, it runs
substantially faster. It does not seem trivial to fix Hibernate to add
an index in this case -- Hibernate wants to run "ALTER TABLE tablename
<dialect specific sql>" to add a FK constraint, but we need to execute
"ALTER TABLE tablename ADD CONSTRAINT ...; CREATE INDEX .... ON
tablename ..." and the dialect code is not given "tablename".

So to fix this properly needs some work on the Hibernate side.

-O

pgsql-bugs by date:

Previous
From: Josh Berkus
Date:
Subject: Re: [pgsql-bugs] Daily digest v1.1346 (21 messages)
Next
From: Tom Lane
Date:
Subject: Re: BUG #1410: Hibernate PerformanceTest is incredibly slow