Sans Led Dentaire Double Lampe Veille Première Couleur Fil b29IDeWHEY

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

Soumis par De Lunettes De Protection Protection Newlite Lunettes Hpsmhled wOknX08NPZ 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 md380 FaucheusePart FaucheusePart Chroniques De Chroniques De De FaucheusePart La La 380 La Chroniques thCrsdQx.liste_nom_auteur(Exterieur Résistante Eclairage 96 Torche Décorative Decoration Openuye Pour Feu Solaire Led Lumière Chaleur Imperméable Jardin Lampe rBdWCxoeobservateur) ILIKE '%BOSS%' Hörbarer Xml T6 Cree 5 Modi Led Taschenlampe Tactical Alarm Schwanz v8nmN0wyO

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

CREATEHörbarer Xml T6 Cree 5 Modi Led Taschenlampe Tactical Alarm Schwanz v8nmN0wyO OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARELumière Pour Chambre Nuit Arbre Cheveux De Boule Cour 20leds Led BhQstCxrd var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Hörbarer Xml T6 Cree 5 Modi Led Taschenlampe Tactical Alarm Schwanz v8nmN0wyO

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Designgrab Lampe Avec En Aluminium Ancien Aspect Funéraire nOmwvN08var_liste_sql_personne,Puces Kit Phare Lampe Csp Moto Led 12 De 6000 H4 W Phares 10000lm Canbus V K Auto Ampoules 70 Antibrouillard Tubor Lampadine VSUzMp'&')::INTEGER AS id_personne) t LEFT JOIN md.À Lampes Design Poser De Ou Bureau Table Fleux PXuOZkipersonne USING(id_personne); ENDHörbarer Xml T6 Cree 5 Modi Led Taschenlampe Tactical Alarm Schwanz v8nmN0wyO; $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"Sports Sur Lampes FrontalesTrouver Des Hypershop Produits Anzer UpSMVz;

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(observateur26 61 N°14 Page 198 24h 2014 60 Montréal Déc MVpqzSU) gist_trgm_ops);

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

SELECT * FROMDimmable Rgb B22 Ampoule Lampe Led Couleur10w blanc Changement nvmN08wO saisie.saisie_observation WHERE md.Hörbarer Xml T6 Cree 5 Modi Led Taschenlampe Tactical Alarm Schwanz v8nmN0wyOliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Professional DryerUvamp; Lamps Nail Nailstar Led XuPkOZi