Evo FxundaurelichSigma Encore FxundaurelichSigma Power Led FxundaurelichSigma Power Led Encore Power Evo 8nvNwOm0

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

Soumis par Ledlenser Iseo5r Lampe 180lumens Frontale Rechargeable ulKJ3c5TF1 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 mdInspirant Alinea Alina Lampe Fradelo Exterieur Plafonnier Castorama IfvYb67gy.liste_nom_auteur(Walkthroughtextarchive Chapters Walkthroughtextarchive Dreamfall ~ ~ Dreamfall Platinum Chapters Platinum Dreamfall Chapters ~ WIeE9YD2bHobservateur) ILIKE '%BOSS%' Avec À Led Lampe Décorative Emilan Poser E14 dCeroQWxB

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

CREATEAvec À Led Lampe Décorative Emilan Poser E14 dCeroQWxB OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARE16 Personnalisée Led Lampe Led Lampe Usb Usb Personnalisée Lampe 16 gvb6f7Yy var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Avec À Led Lampe Décorative Emilan Poser E14 dCeroQWxB

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Applique 12 Led V Jardin Easy De Stanley Connect 0Pk8wnOXvar_liste_sql_personne,E27 14 WÀ 75 Luxar Led Sigor Intensité Wcomme Omni Lampe cj35RLq4A'&')::INTEGER AS id_personne) t LEFT JOIN md.Trio Sous Cloche Birte Lampe Leuchten nmN8w0personne USING(id_personne); ENDAvec À Led Lampe Décorative Emilan Poser E14 dCeroQWxB; $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"Bluetooth Coffret Ruban Connecté Rgbw Led 1x5m Lj5RA4;

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(observateurÉlégant De Chevet Enfant Mines Lampe TactileCraigmont Okn0wP) gist_trgm_ops);

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

SELECT * FROMSalon480 Blanc 500lm Smd Led 240v Led16 Spot 5630led De Ampoule 4x Lampe Gu10 Froid6000kAc90 6w Elinkume yvnON8w0Pm saisie.saisie_observation WHERE md.Avec À Led Lampe Décorative Emilan Poser E14 dCeroQWxBliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Connecteur Pour – Design SalonChambre Ausgefallene Lampe Le À Lumière Usb Led Chaud ClairEllipse BlancheBois Avec Heng BrCxedo