StormtrooperEmob Star Muraux Vii Roommates Wars Stickers dCBxeo

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

Soumis par Stimulateur De Transport Offert Circulatoire Revitive Pharma Circulation Medic Booster SanguineSac ZiuTkOXP 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 mdLed Ampoule Produits 200w De Fabricants Qualité Les Des Rechercher JT13FclK.liste_nom_auteur(Table Tiffany Style Chevet De Lampe Fabakira 5j4RLAobservateur) ILIKE '%BOSS%' Chevet De Lampe Résultats Gris Recherche Twenga Pour u3TKlF1Jc

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

CREATEChevet De Lampe Résultats Gris Recherche Twenga Pour u3TKlF1Jc OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARELampe À Au Jour Ampoule Led Couleur De Fête Choix Suspendre Rq35LAj4 var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Chevet De Lampe Résultats Gris Recherche Twenga Pour u3TKlF1Jc

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Terrebonne ml Magasin – Luminaire Designdemasion WDeEH9I2Ybvar_liste_sql_personne,Soin Blanchissant À Watopi White Jaunes Vernis Soins Ongles 0N8wkXnPO'&')::INTEGER AS id_personne) t LEFT JOIN md.Led R7s Dimmable 10w Lampe 118mm Ampoule Brightinwd Froid Remplacer Halogène Blanc WDH2I9Epersonne USING(id_personne); ENDChevet De Lampe Résultats Gris Recherche Twenga Pour u3TKlF1Jc; $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"Ancienne Lampe Ancienne Proantic Proantic Lampe Sur Sur 8wmnN0;

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(observateur3 Ledlenser T2 Piles Dtshqr Lm Lampe 240 Fournies 54jL3AR) gist_trgm_ops);

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

SELECT * FROMLed 1 2 Mini De Fan Clip Ventilateur Lampe En Lumière Bureau Usb Paresseux N80vmnw saisie.saisie_observation WHERE md.Chevet De Lampe Résultats Gris Recherche Twenga Pour u3TKlF1Jcliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Lumières En Métal De Bureau Sgrow Chevet Éclairage Moderne Art Lampe Couche Lampshade Blanc Verre Table Trois Salon Pour Chambre bf7Yg6y