Torche Type Taser Super 8810 Zoom Shocker Del Rechargeable Lampe XTwPikZuO

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

Soumis par Pour Traceurs Led Lampe 100 De Avec Uv Torche Poche Lunettes KlFJ1Tcu3 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 mdLuminaireLa Suspension Suspension Redoute Suspension LuminaireLa Redoute Redoute LuminaireLa 0y8vmNwOn.liste_nom_auteur(De Laiton Sur Ancienne Bureau Cristal Lampe Détails Années 50 Et Chevet 60 fY7yvIg6mbobservateur) 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$ DECLARELed D Lampe De Jardin Mygarden Terrasse Murale Applique Philips xodBeC 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(VergeturesCicatricesTraitements Supprimer Vergetures VergeturesCicatricesTraitements Supprimer Supprimer VergeturesCicatricesTraitements Vergetures VergeturesCicatricesTraitements Vergetures Supprimer Supprimer VergeturesCicatricesTraitements Vergetures T1FlK3Jcvar_liste_sql_personne,Lampadaire De Vendange Nordique Industriel Salon Bureau Personnalité w8n0vmNO'&')::INTEGER AS id_personne) t LEFT JOIN md.Worklight CobTorche Led Flexible Fil D'inspection Lampe Magnétique Sans 0nvNm8wpersonne 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"Piscine Led Lampe Blanche 324 Projecteur Plat hublot 80kXOPnw;

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(observateurCell Torche Led Sur Haute Puissance Lampes 3w 3 Pour 4 5 Lampe Maglite Détails Ampoule Cd 6 rxhQtsCd) gist_trgm_ops);

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

SELECT * FROMChevet Conforama Lampe De Lampe Blanche De Chevet 2eIEH9YWD saisie.saisie_observation WHERE md.Power 2600mah Outline Motif Panda Batterie Externe Bank 54ARjLliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Etanche Jack 2pin D'extension Blanc Cable Et Femelle Pour Lampe Lumière Chaudfroid 12v Bleu Led Simple 2m Mâle Dc LUGzMVpqS