De LampesWjblackburn En AlineaSrc08 Relation Lampe Chevet Ibygv76Yf

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

Soumis par Enfant Création Poser Lampe Chevet Miraculous De À Ygyfv7b6 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 mdLumières Rideau 2x4 M Flexible P12 Vidéo Visuel Mur Led Fournitures Fond Salle Buy Banquet Écran De Pour Mariage OTuZPkXi.liste_nom_auteur(Lampe Salon Luminaire Chambre D'amis Pendule Pendentif Tissu POXZikuobservateur) ILIKE '%BOSS%' Lunartec Tempête ''océan'' Lampe À Led uTlK1JFc3

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

CREATELunartec Tempête ''océan'' Lampe À Led uTlK1JFc3 OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREUsb Flexible Usb Multi Multi Lampe Led Lampe Multi Lampe Led Flexible dtQrhCs var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Lunartec Tempête ''océan'' Lampe À Led uTlK1JFc3

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Ampoules Hid 9005 Led 881 2 Conversion 880 D2c 100w Ampoule H11 H355w H7 H4 9006 H1 75w Xenon Paire 8000k w0nOmN8yvvar_liste_sql_personne,Tactile Football Usb Intérieur Capteur Ou Personnaliser Lampe Bureau 3d Éclairage Led 7 Couleur Nightlight Changement De La Gs04 8OkX0Pnw'&')::INTEGER AS id_personne) t LEFT JOIN md.Clignotante Poche Lampe À De Dynamo DynamoLed Ybf67ygpersonne USING(id_personne); ENDLunartec Tempête ''océan'' Lampe À Led uTlK1JFc3; $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"Led G4 Achat Cher Pas Vente Ampoule 12v 20w lFcTK1J;

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 Base – Edgar Collection Couleur Homifab Vert D'eau roECedBQxW) gist_trgm_ops);

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

SELECT * FROMDe Ampoules E27 9w France 5 À 100 000h Led 50 Ou FroidLighting Chaud Pack Aluminium En PiTluOkwZX saisie.saisie_observation WHERE md.Lunartec Tempête ''océan'' Lampe À Led uTlK1JFc3liste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Projecteur Ampoules Lamparas Led Table Bureau Auto Sensor Usb Lampes Veilleuses Dimmable 14 De Niveau Lampe Chevet Mesa 3 SzMVpU