From e1395d0773c28848e436a9c5650d6b7a862d8901 Mon Sep 17 00:00:00 2001 From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04> Date: Fri, 7 Mar 2008 14:34:08 +0000 Subject: [PATCH] speed up getFeatureDbXRefsBySrcFeature git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@7212 ee4ac58c-ac51-4696-9907-e4b3aa274f04 --- artemis_sqlmap/FeatureDbXRef.xml | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/artemis_sqlmap/FeatureDbXRef.xml b/artemis_sqlmap/FeatureDbXRef.xml index 0b93402e8..f3455ea29 100644 --- a/artemis_sqlmap/FeatureDbXRef.xml +++ b/artemis_sqlmap/FeatureDbXRef.xml @@ -58,18 +58,17 @@ <select id="getFeatureDbXRefsBySrcFeature" parameterClass="org.gmod.schema.sequence.Feature" resultMap="map-feature-dbxref"> - SELECT db.name, dbx.accession, dbx.version, dbx.description, - dbx_f.feature_id, dbx_f.is_current - FROM feature_dbxref dbx_f - LEFT JOIN dbxref dbx ON dbx.dbxref_id=dbx_f.dbxref_id - LEFT JOIN db ON db.db_id=dbx.db_id - LEFT JOIN feature f ON dbx_f.feature_id=f.feature_id - WHERE dbx_f.feature_id IN - (SELECT feature_id FROM featureloc fl WHERE srcfeature_id=$featureId$ + SELECT db.name, dbx.accession, dbx.version, dbx.description, + dbx_f.feature_id, dbx_f.is_current + FROM featureloc fl + RIGHT JOIN feature_dbxref dbx_f ON fl.feature_id = dbx_f.feature_id + LEFT JOIN dbxref dbx ON dbx.dbxref_id=dbx_f.dbxref_id + LEFT JOIN db ON db.db_id=dbx.db_id + WHERE srcfeature_id = $featureId$ <isGreaterThan property="featureLoc.fmin" compareValue="0" prepend="AND"> <![CDATA[ fl.fmin > $featureLoc.fmin$ AND fl.fmax < $featureLoc.fmax$ ]]> - </isGreaterThan>) - ORDER BY f.type_id, uniquename + </isGreaterThan> + ORDER BY fl.feature_id, dbx.accession , db.name; </select> <!-- WRITE BACK --> -- GitLab