| From: | Kris Jurka <jurka(at)ejurka(dot)com> |
|---|---|
| To: | pgsql-hackers(at)postgresql(dot)org |
| Subject: | Optimizer generates bad plans. |
| Date: | 2002-09-19 22:06:21 |
| Message-ID: | 3D8A4A5D.6070701@ejurka.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
While adding schema support to the JDBC Driver, I came across a query
which occasionally generates some spectacularly bad plans. I have
attached the query and explain analyze outputs against today's cvs head
for queries that take between 9 and 845941 msec. In the JDBC Driver I
will specify a reasonable join order using explicit JOINs, but I thought
someone might be interested in a test case for the optimizer.
Kris Jurka
The query tries to determine what foreign keys exists between the
following tables.
create table people (id int4 primary key, name text);
create table policy (id int4 primary key, name text);
create table users (id int4 primary key, people_id int4,
policy_id int4,
CONSTRAINT people FOREIGN KEY (people_id) references people(id),
constraint policy FOREIGN KEY (policy_id) references policy(id));
| Attachment | Content-Type | Size |
|---|---|---|
| query.sql | text/plain | 1.0 KB |
| badplan.txt | text/plain | 6.2 KB |
| goodplan.txt | text/plain | 6.1 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Bruce Momjian | 2002-09-19 22:09:06 | Re: Optimizer generates bad plans. |
| Previous Message | Bruce Momjian | 2002-09-19 22:01:34 | Re: GRANT EXECUTE |