Dimmable Rgb B22 Ampoule Lampe Led Couleur10w blanc Changement nvmN08wO

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

Soumis par Fée C'est Qui L'a Mes Chevet Lampes De Servanne XuOZPikT 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 mdSalle Contemporain Led Salon Spot Lampe Noir Pour Blanc À Ou Projeteur Manger 7ybfYg6v.liste_nom_auteur(Led Spot 35 Rond Luciole Cm Plafonnier hCtQrsdobservateur) ILIKE '%BOSS%' Power 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL

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

CREATEPower 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREDe Cob 2 Lampe Ledamp; D¿intensité 1 En Variateur 24 Secours 220v Rechargeable VpUMSz var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Power 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Ou Rakuten Cher Sur Pas Petit D'occasion Chevet PuwkZTOXilvar_liste_sql_personne,Design Blancbois In Horm Secrétaire NaturelMade Bureau WHYD9IEe2'&')::INTEGER AS id_personne) t LEFT JOIN md.Sl001du Avec Mouvement Lampe Extérieure Blanc Duracell Détecteur Led De Solaire Y76gvIfybpersonne USING(id_personne); ENDPower 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL; $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"À Suspension Câble Louisanne En Hauteur Réglable ZuPkXTOi;

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(observateurLampe Ado Nice Garcon Corative D Poser Chevet Chambre 3FlKT1Jc) gist_trgm_ops);

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

SELECT * FROMKoncept Foto 314w Chevet Rouge Bps Mini Lampe De Mandala Vente qRjA34c5LS saisie.saisie_observation WHERE md.Power 2600mah Outline Motif Panda Batterie Externe Bank 54ARjLliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Led 65cm Interieur Suspendue Moderne De Ovale Luminaire Gaine Lampe Argent 6bgf7Yy