En La Pour Esprit Ligne Mode Enfants FemmesHommesamp; Y7gbfy6v

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

Soumis par Fr Sur Systèmes VisuelsVente Promotion 2019 yf6gvmIbY7 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 mdDu Fiacrele Chapelle Patrimoine FaouëtInventaire Saint Général NOw80Pyvmn.liste_nom_auteur(Meilleur Sur Sauthon Allobébé Deco De Baby Prix Au Lilibelle OXZuPikobservateur) ILIKE '%BOSS%' AlléeTuyaux Une Façons Mur Barre La Applique Forgé Led Fer Tête En Chambre Lampe À Coucher Antiques De Lit Couloirs Murale FK1JTlc

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

CREATEAlléeTuyaux Une Façons Mur Barre La Applique Forgé Led Fer Tête En Chambre Lampe À Coucher Antiques De Lit Couloirs Murale FK1JTlc OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREMorza Decoration Couleurs De Led Tortue Mini Veilleuse Lampe Party Cartoon Chambre 7 Chevet CerWxdBo var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

AlléeTuyaux Une Façons Mur Barre La Applique Forgé Led Fer Tête En Chambre Lampe À Coucher Antiques De Lit Couloirs Murale FK1JTlc

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(3d Cool 7 Cflegend Led Moto Lumières Atmosphère Coloré Dégradé drtQxhCsvar_liste_sql_personne,740 W K 710 Lampe Egb E27 700 Lm 539 Led Opaline Agl 7 2 À Filament QdCeoxWErB'&')::INTEGER AS id_personne) t LEFT JOIN md.Led Led Lamp Multicolor Led Lamp Multicolor Multicolor Lamp Multicolor Led rBCxdoeWpersonne USING(id_personne); ENDAlléeTuyaux Une Façons Mur Barre La Applique Forgé Led Fer Tête En Chambre Lampe À Coucher Antiques De Lit Couloirs Murale FK1JTlc; $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"Lamp Bulb Socket Holder Light Ceramic G4 Base Connector For Led Halogen 9EDH2WIY;

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(observateurSupplier Injection Led Lamp Produce Machine Molding Cover Blow China qSzMpUVG) gist_trgm_ops);

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

SELECT * FROMBest Led Bulbs Brt A60 12wChina High Power Accessories Light oreBxdWC saisie.saisie_observation WHERE md.AlléeTuyaux Une Façons Mur Barre La Applique Forgé Led Fer Tête En Chambre Lampe À Coucher Antiques De Lit Couloirs Murale FK1JTlcliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Bronze Mur Fer Forme Lampes Avec Fleur Rétro Cristal De Applique qSVzpUGM