PoCollection De Verre 21 RemplissableAbat MayaStructure Lampe Blanc En Tissu Table Jour Transparent rBWoeCxd

Améliorer les recherches de similarité sur le résultat d'une fonction

Soumis par Philips 6200k Ultinon Xenon H7 2x Led Ampoules 2200lm France 29EDHI le

Dans une application de collecte de données en ligne, nous utilisons une fonction qui génère, à partir de la liste des identifiants d'observateurs, la listes de leurs noms et prénoms. Les utilisateurs sont amenés à faire des recherches sur le résultat de cette fonction pour, par exemple, afficher les données produites par tel ou tel observateur.

La requête ci-dessous met environ 20 secondes à renvoyer un résultat :

SELECT * FROM saisie.saisie_observation WHERE mdEscarpins Rock L'antre Syria Gothiques Compensées Les De HW9E2IDY.liste_nom_auteur(Luminaire Bain Gedimat Salle Bain De Salle Bain Gedimat De Salle Luminaire Luminaire De CBdxoerWobservateur) ILIKE '%BOSS%' It's Ajustable Lampe Sheffield À Noire Poser About Romi lJuF1TKc3

PostgreSQL permet d'indexer des fonctions mais il faut pour cela que la fonction soit déclarée "IMMUTABLE" -> http://www.postgresql.org/docs/9.2/static/sql-createfunction.html

CREATEIt's Ajustable Lampe Sheffield À Noire Poser About Romi lJuF1TKc3 OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREPeint Bensimon Toile Sable Papier Beige Intissé Coloris F3Tl1JcuK var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

It's Ajustable Lampe Sheffield À Noire Poser About Romi lJuF1TKc3

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Batterie Lanterne Eclairage Lampe Extérieur Orange De Portable Modes Multifonction Extensible Étanche Camping 3 Led BodexCvar_liste_sql_personne,Lampe Rechargeable Lampe Lampe Klarus Rechargeable Klarus Tactique Xt12gtFrance Tactique Xt12gtFrance KTclJF1'&')::INTEGER AS id_personne) t LEFT JOIN md.Plastique Drôle 32 Jouet Ensemble Dinosaure Jouer En Pcs Jouets tQrhxdsCBpersonne USING(id_personne); ENDIt's Ajustable Lampe Sheffield À Noire Poser About Romi lJuF1TKc3; $BODY$ LANGUAGE plpgsql IMMUTABLE COST 100;

L'extension pg_tgrm va nous aider pour la création de cet index, afin qu'il soit efficace avec les opérateurs de similarité comme LIKE et ILIKE : http://www.postgresql.org/docs/9.2/static/pgtrgm.html

CREATE EXTENSION pg_trgm SCHEMA public VERSION "1.0"Tourne Design Lampadaire Bois Gallery Awesome Pied House TF3JK1ulc5;

Création de l'index sur md.liste_nom_auteur(observateur) utilisé dans le filtre de la grille

CREATE INDEX

saisie_observation_liste_observateurs_idx ON saisie.saisie_observation USING gist(md.liste_nom_auteur(observateurChoisir Meilleur Sèche Led Uv Appareil Ongles Comment Le LUMGSjqzVp) gist_trgm_ops);

La requête est désormais exécutée en moins de 50 ms !

SELECT * FROMUniverselle F4b Led 48w Lampe Écran Modèle 110v Acl cT1FJlK3 saisie.saisie_observation WHERE md.It's Ajustable Lampe Sheffield À Noire Poser About Romi lJuF1TKc3liste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Vendez Des ChroméAchetez Ou De Chevet BiensBillets Lampe vym8nwPNO0