pg.ddx.io pgsql-sql@postgresql.org mailing list archive
help / color / mirror / Atom feed From: Franco Bruno Borghesi <franco@akyasociados.com.ar>
To: Charles Hauser <chauser@duke.edu>
Cc: pgsql-sql@postgresql.org
Subject: Re: query optimization
Date: Thu, 10 Jun 2004 12:45:45 -0300
Message-ID: <1086882344.1303.2.camel@taz.oficina> (raw )
In-Reply-To: <1078422984.5001.18.camel@pandorina >
References: <1078422984.5001.18.camel@pandorina >
I see that attribute project is defined as integer in library, and as
varchar(8) in clone. I suspect that's what causing the problem and
forcing a seq scan on library.
On Thu, 2004-03-04 at 14:56, Charles Hauser wrote:
> All,
>
> I have the following query which is running quite slow on our server and
> was hoping someone would have suggestions how I might improve it.
>
>
> est3=>EXPLAIN SELECT clone.uniquename,clone.name,library.type,clone.clone_id
> est3-> FROM library,clone_aceg
> est3-> JOIN clone USING (clone_id)
> est3-> WHERE clone_aceg.aceg_id = 8 AND
> est3-> clone.project=library.project;
> QUERY PLAN
> -----------------------------------------------------------------------------------------------------
> Nested Loop (cost=0.00..27.92 rows=1 width=57)
> Join Filter: (("outer".project)::text = ("inner".project)::text)
> -> Nested Loop (cost=0.00..18.55 rows=4 width=43)
> -> Index Scan using aceg_id_clone_aceg_key on clone_aceg (cost=0.00..3.05 rows=4 width=4)
> Index Cond: (aceg_id = 8)
> -> Index Scan using clone_pkey on clone (cost=0.00..3.91 rows=1 width=39)
> Index Cond: ("outer".clone_id = clone.clone_id)
> -> Seq Scan on library (cost=0.00..2.15 rows=15 width=14)
> (8 rows)
>
>
>
>
> relevant tables below.
>
> regards,
>
> Charles
>
>
> Tables:
> Table "public.clone"
> Column | Type | Modifiers
> ------------+-----------------------+--------------------------------------------------------
> clone_id | integer | not null default nextval('"clone_clone_id_seq"'::text)
> name | character varying(10) | not null
> uniquename | text | not null
> project | character varying(8) |
> p_end | character varying(2) |
> lib_id | integer |
> accn | character varying(10) |
> seq | text | not null
> seqlen | integer |
> hq_start | integer |
> hq_end | integer |
> scaffold | character varying(50) |
> Indexes: clone_pkey primary key btree (clone_id),
> clone_uniquename_idx unique btree (uniquename),
> clone_accn_idx btree (accn),
> clone_name_idx btree (name),
> clone_project_idx btree (project),
> clone_scaf_idx btree (scaffold)
>
> Table "public.library"
> Column | Type | Modifiers
> -------------+---------+--------------------------------------------------------
> lib_id | integer | not null default nextval('"library_lib_id_seq"'::text)
> source | text |
> type | text |
> project | integer |
> name | text |
> organism | text |
> strain | text |
> vector | text |
> rs1 | text |
> rs2 | text |
> preparation | text |
> Indexes: library_pkey primary key btree (lib_id),
> library_project_idx btree (project),
> library_type_idx btree ("type")
>
>
> Table "public.clone_aceg"
> Column | Type | Modifiers
> ----------+---------+-----------
> clone_id | integer |
> aceg_id | integer |
> Indexes: clone_aceg_clone_id_key unique btree (clone_id, aceg_id),
> aceg_id_clone_aceg_key btree (aceg_id),
> clone_id_clone_aceg_key btree (clone_id)
> Foreign Key constraints: cloneid FOREIGN KEY (clone_id) REFERENCES clone(clone_id) ON UPDATE NO ACTION ON DELETE CASCADE,
> acegid FOREIGN KEY (aceg_id) REFERENCES aceg(aceg_id) ON UPDATE NO ACTION ON DELETE CASCADE
>
> List of relations
> Schema | Name | Type | Owner | Table
> --------+----------------------------+-------+---------+--------------
> public | aceg_aceg_idx | index | chauser | aceg
> public | aceg_assembly_key | index | chauser | aceg
> public | aceg_blast_aceg_id_key | index | chauser | aceg_blast
> public | aceg_contig_idx | index | chauser | aceg
> public | aceg_g_scaffold_idx | index | chauser | aceg
> public | aceg_has_blast_idx | index | chauser | aceg
> public | aceg_id_aceg_blast_key | index | chauser | aceg_blast
> public | aceg_id_clone_aceg_key | index | chauser | clone_aceg
> public | aceg_pkey | index | chauser | aceg
> public | aceg_uniquename_idx | index | chauser | aceg
> public | blast_id_aceg_blast_key | index | chauser | aceg_blast
> public | blast_id_contig_blast_key | index | chauser | contig_blast
> public | blast_ortho_idx | index | chauser | blast
> public | blast_pkey | index | chauser | blast
> public | clone_accn_idx | index | chauser | clone
> public | clone_aceg_clone_id_key | index | chauser | clone_aceg
> public | clone_contig_clone_id_key | index | chauser | clone_contig
> public | clone_id_clone_aceg_key | index | chauser | clone_aceg
> public | clone_id_clone_contig_key | index | chauser | clone_contig
> public | clone_name_idx | index | chauser | clone
> public | clone_pkey | index | chauser | clone
> public | clone_project_idx | index | chauser | clone
> public | clone_scaf_idx | index | chauser | clone
> public | clone_uniquename_idx | index | chauser | clone
> public | contig_ace_idx | index | chauser | contig
> public | contig_assembly_idx | index | chauser | contig
> public | contig_assembly_key | index | chauser | contig
> public | contig_blast_blast_id_key | index | chauser | contig_blast
> public | contig_contig_idx | index | chauser | contig
> public | contig_has_blast_idx | index | chauser | contig
> public | contig_id_clone_contig_key | index | chauser | clone_contig
> public | contig_id_contig_blast_key | index | chauser | contig_blast
> public | contig_pkey | index | chauser | contig
> public | contig_uniquename_idx | index | chauser | contig
> public | library_pkey | index | chauser | library
> public | library_project_idx | index | chauser | library
> public | library_type_idx | index | chauser | library
> (
>
>
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>
Attachments:
signature.asc (application/pgp-signature, 186B) download
view thread (4+ messages)
Message-ID: <1086882344.1303.2.camel@taz.oficina>
Permalink: ../1086882344.1303.2.camel@taz.oficina/
Also on: postgresql.org/message-id/1086882344.1303.2.camel@taz.oficina
copy link · copy postgr.es
reply Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-sql@postgresql.org
Cc: franco@akyasociados.com.ar, chauser@duke.edu
Subject: Re: query optimization
In-Reply-To: <1086882344.1303.2.camel@taz.oficina>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox