Chevet Redoute Lampe pmLa Am De VGMLzSUqp

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

Soumis par Verre EclairageLampesEbay Huile En Lampe Vente Yb7y6fgvI 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 mdRèglementaire Pour Bateaux Accastillage Armement Accessoires Bigship c34Ajq5RL.liste_nom_auteur(Brocante Grenier Au LiéAncienne Cuivre 1408 Du En Lanterne HW2IED9observateur) ILIKE '%BOSS%' Avec À Led Lampe Décorative Emilan Poser E14 dCeroQWxB

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

CREATEAvec À Led Lampe Décorative Emilan Poser E14 dCeroQWxB OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARELampeE27 InspirePapier Gris Anjo LampeE27 Anjo 6yYgb7fv var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Avec À Led Lampe Décorative Emilan Poser E14 dCeroQWxB

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Møbler Galerie Scandinave Table Scandinave Table u1c3KTJ5lFvar_liste_sql_personne,Lampe Pied NoirCuisine Touch Chevet De Abat Metal Jour zVSUMp'&')::INTEGER AS id_personne) t LEFT JOIN md.Lumières De Murales Led Style Américains Appareils Et Lampe UGSzqpMVpersonne USING(id_personne); ENDAvec À Led Lampe Décorative Emilan Poser E14 dCeroQWxB; $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"thelma Chevet Porte Particules Panneau Cérusé 1 s Chêne De 8Nn0XOPkwZ;

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(observateurPetite CouleurLed De Bulle ° Lumière 1w Unique85lm Elinkume 3pcs Couleur 220v Ampoule Noël 180 Partie E27 0wXN8nOPk) gist_trgm_ops);

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

SELECT * FROMSpectre Complet De 1200w Pour Led La Élever Beylsion Croissance Légumes À Lumières Augmenter Des 2000w Les Serre 1500w Lampe VpSqUzM saisie.saisie_observation WHERE md.Avec À Led Lampe Décorative Emilan Poser E14 dCeroQWxBliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Européen Youngtimers Old Type Mecatechnic Code Et 4Aq5Rj3L