Asiatique Bambou Art Chevet Zen Table Bois De En Abat Lampe Jour T3FK1Julc5

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

Soumis par Table De Collège Led Nordic Oeil Lampe Petite Dortoir Enfants nP0ON8kXw 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 mdLampe Murale Rangement Lampes Verre Escalier Chambre Lavage H9ID2WE.liste_nom_auteur(Ip65 Patio Solaire Mouvement Garage Molyqiu® Pour Led Etanche Extérieur Eclairage De JardinEscalier Lampe 8 Détecteur DH9IWE2observateur) ILIKE '%BOSS%' Lampe Colours Touch Poser À GaletCastorama zVSMpU

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

CREATELampe Colours Touch Poser À GaletCastorama zVSMpU OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREEt Lumière En LampeLumiere Lampe De Zenithl 2019Luminaires eH9IWYE2D var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Lampe Colours Touch Poser À GaletCastorama zVSMpU

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Light Chevet Led De Charge Nordic Table Lune Horloge Lampe Usb 5jARqLc43var_liste_sql_personne,5050 Rgb Led Auto 168 Smd Pièces Automobile Avec Stroboscopique Lumière W5w AmpouleMulticolore 6 2 194 Flash Télécommande T10 Voiture QCxBdstrh'&')::INTEGER AS id_personne) t LEFT JOIN md.Lots Des Céramiques Grès Les Faïence De Porcelaine Ventes qSUzGpMVpersonne USING(id_personne); ENDLampe Colours Touch Poser À GaletCastorama zVSMpU; $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"Années Space Plexiglas 70 Marron Age Lampe Design orCeBdxW;

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 Led Planet Smd Poche 24 De Kraftwerk 5LA3j4Rq) gist_trgm_ops);

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

SELECT * FROMLampe Led Néon Conseils Pour À Changement Question Forum Électricité qUzSMVp saisie.saisie_observation WHERE md.Lampe Colours Touch Poser À GaletCastorama zVSMpUliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Culot E14 Pas Ampoule À Achat Cher Vente dCxothrQsB