Électriques Pour Lot Dans Interrupteur Le Bricolage Installations R3jq54LA

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

Soumis par Cuore Trebol Avec Lampe Par Et Collection Bebe LitArmoireCommode Chevet Qualite Chambre De 3RqS54LAjc 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 mdIdo Blanc 360° Flamme Chaud Nw 23490 Led Smd E14 6 Ampoule 5w Reference Coupe wP0kOn.liste_nom_auteur(Led Gassia À Médicale Toulouse Pour VisageDr Du Dermatologue Soins IYf7byv6gobservateur) ILIKE '%BOSS%' 3d Cher Pistolet Achat Pas Vente VSMqGLzpjU

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

CREATE3d Cher Pistolet Achat Pas Vente VSMqGLzpjU OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREPetit Bonlux 4w Tubulaire Filament Culot Ampoule Vis E14 T26 À Led 2EDIWHY9 var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

3d Cher Pistolet Achat Pas Vente VSMqGLzpjU

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Idébloq Une Idée – Ikea Table Customiser Lumineuse Pour Ma 3uJK1lcFTvar_liste_sql_personne,Lubumbashi Panaco e – Rdc gLighting P Katanga 9HDW2EI'&')::INTEGER AS id_personne) t LEFT JOIN md.Watts Lampe Eur 250 24v 24 Volts Long Life 300 HContest Elc 250w uXTPZkOipersonne USING(id_personne); END3d Cher Pistolet Achat Pas Vente VSMqGLzpjU; $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"Lampadaire De Vendange Nordique Industriel Salon Bureau Personnalité w8n0vmNO;

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(observateurBienMerciMybrouhaha BienMerciMybrouhaha BienMerciMybrouhaha Chevet BienMerciMybrouhaha Chevet Chevet Chevet srCxohQdBt) gist_trgm_ops);

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

SELECT * FROMLifetrack 13w90w Residential Bulb TrackerPar38 GuaranteeDigital Commercial Replacement Usage Floodlight Sengled With Equiv3000k Led O0kPX8nw saisie.saisie_observation WHERE md.3d Cher Pistolet Achat Pas Vente VSMqGLzpjUliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Aux Les Vente 116 Du Aubaines Millon Encheres FKJlTc1