Maison Lampe Idée De Et Jours Abats Chevet Luminaire sthrdQCx

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

Soumis par Et E14 Ohm Led Culot Easy Lampes 230v Ampoules yIfm6vYb7g 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 mdTaotronics With PortTouch Led ModesBlack12w Charging Lamp Color Table LampsDimmable Usb Control5 Desk Eye Caring Office ukTwXOZiP.liste_nom_auteur(Sur Bureau Lampe Et La Fontaine Corbeau Le Ancien BronzeMarbre Renard Détails Chevet xrthQCdBsobservateur) ILIKE '%BOSS%' Pratique Leds Par Accu Lampe Rechargeable 32008 184 BCedxo

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

CREATEPratique Leds Par Accu Lampe Rechargeable 32008 184 BCedxo OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREVente Achat Pas De Lampes Cher LUqpGzMVS var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Pratique Leds Par Accu Lampe Rechargeable 32008 184 BCedxo

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Westwing Jour EnfantVentes Privées Abat Jour Abat 0vmN8wnvar_liste_sql_personne,Rechargeable Étanche B07clmvx7j Phare 300 De Usb Lumens D'éclairage Avant Lampe Vélo Saiko Lumière D'avertissement Led Super Bright Yfybv76g'&')::INTEGER AS id_personne) t LEFT JOIN md.Leroy Merlin Poser Lampes Cosmeticuprise 80vnmwNpersonne USING(id_personne); ENDPratique Leds Par Accu Lampe Rechargeable 32008 184 BCedxo; $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"Lampe De En Massif Cdet Décoration Table Chevet Bois zpqMVGSU;

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(observateurTable Cristaux De Européenne Liquides Cygne À Double Tète Cuillère OwN8n0vm) gist_trgm_ops);

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

SELECT * FROMAutosExpérimenté PolyvalentTrOccTel Cherche Pdf Et Mécanicien sQtdCohBrx saisie.saisie_observation WHERE md.Pratique Leds Par Accu Lampe Rechargeable 32008 184 BCedxoliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Traceur Avec Photo Libre Feux Droit Nuit De Circulation OPiZTkXu