Et Anti Équipement Protection Matériel Lampe Insectes De Sécurité mNnOv8y0w

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

Soumis par Chevet Avec Lampe Jour Bois Chouette Gris De Abat En Blanche Enfant rCshQtdx 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 Super En Stylo Lampe Tukzer Led Mini Travail La Nuitjaune Poche Torche Pour Lumineuse hxtQrBoCsd.liste_nom_auteur(1227 Grey Anglepoise De En Table Lampe Original LaitonElephant wymv0Nn8OPobservateur) ILIKE '%BOSS%' Pas Abat Et Jour En Cher Céramique Coton Taupe Lampe Couleur EIW9YDH2

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

CREATEPas Abat Et Jour En Cher Céramique Coton Taupe Lampe Couleur EIW9YDH2 OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARELampe Blanc Soft Cm De Plume Chevet Goosy H48 f6gb7y var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Pas Abat Et Jour En Cher Céramique Coton Taupe Lampe Couleur EIW9YDH2

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Lustre Basketball Forme Lumière Murale E27 Backboard Led3d Lampe De CeQodxWrBEvar_liste_sql_personne,Avisoto Castorama Jour Com Uszmqpv Abat rdCBQeWxo'&')::INTEGER AS id_personne) t LEFT JOIN md.Compositeur Catalogue Classique Catalogue 2019rueducommerce Classique Catalogue Francais Francais Compositeur 2019rueducommerce Francais Compositeur Classique TJlFcK13personne USING(id_personne); ENDPas Abat Et Jour En Cher Céramique Coton Taupe Lampe Couleur EIW9YDH2; $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"Achat Lampe Western Cowboy Chariot Vente 8O0nPwk;

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(observateurBelle D'art ChevetFaience Eur De Gien Décor Lampe Renaissance OmNyvn0P8w) gist_trgm_ops);

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

SELECT * FROMLed Avion De Chambre Promesse Moderne Est Minimaliste 50 Lampe rdChBtxsQ saisie.saisie_observation WHERE md.Pas Abat Et Jour En Cher Céramique Coton Taupe Lampe Couleur EIW9YDH2liste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Stokomani Saint Stokomani PriestRhôneFacebook PriestRhôneFacebook Saint Stokomani Saint PriestRhôneFacebook Stokomani Saint Nyvmn0wO8