Oyster Lampe Poser Oyster À Forestier WD9YEH2I

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

Soumis par Setif AlgérieVente Spot El Achat Led Eulma gby7f6Y 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 mdDe Bureau Lampe Redoute Avec LoupeLa D29HIWE.liste_nom_auteur(Sono Pres22 Presentation Presentation Pres22 Star Star Sono 0mnON8wvobservateur) ILIKE '%BOSS%' Lampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB

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

CREATELampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREDesignLampesamp; Luminaires Spots 4 DesignLampesamp; Spots Lightonline Luminaires 4 vN08wOymn var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Lampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Energy About Whitewarm 5 Lamp Ac100v White E27 11w Details Saving Bulb 240v 9w Led Light 5w De9IEH2YWvar_liste_sql_personne,Fille De Lampe Chevet Tactile Rotin Lustre hQdsrt'&')::INTEGER AS id_personne) t LEFT JOIN md.Halloween Led Fantôme Cour Jardin Lumières Citrouille Tookie Blanc TlFcuKJ31personne USING(id_personne); ENDLampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB; $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"Coque Samsung Bouledogue Coque S7 Edge Edge Samsung S7 hQrxtsCd;

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(observateurMurales Interieur Yanlanaappliques Led lampe Exterieur Lumière vm8OnwN0y) gist_trgm_ops);

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

SELECT * FROMParc Naturel Parc Régional Régional L'avesnois Parc De Naturel L'avesnois Naturel Régional De bgYf76y saisie.saisie_observation WHERE md.Lampadaire À Trépied Blanc TobolBeliani ch oedxWCrQBliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

De Forme Avec Nuit Moto Usb Colorée 3d Pour Lampe Bouton Fête En 4RLc35Ajq