| From: | Oliver Jowett <oliver(at)opencloud(dot)com> | 
|---|---|
| To: | Simon Nicholls <simon(at)mintsource(dot)org> | 
| Cc: | pgsql-bugs(at)postgresql(dot)org | 
| Subject: | Re: BUG #1410: Hibernate PerformanceTest is incredibly slow | 
| Date: | 2005-01-20 23:19:55 | 
| Message-ID: | 41F03C9B.6040300@opencloud.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | 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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2005-01-21 00:20:28 | Re: BUG #1410: Hibernate PerformanceTest is incredibly slow | 
| Previous Message | Josh Berkus | 2005-01-20 22:39:32 | Re: [pgsql-bugs] Daily digest v1.1346 (21 messages) |