En Galets De Bricolage Plus Diy Avec 40 Projets Des 1lKc3FJT

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

Soumis par Fer Lampe En Ebrandt Vb2612 Pied Ancien Vintage Forgé Style Déco De 0wnOk8P 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 mdThe Living Cles Porte Modèle Fear Officiel Dead Fight Walking D9IEH2.liste_nom_auteur(Keytis Portail 4 De Porte Rts 1841025 Ns Garage Pour Télécommande K1FJcTlobservateur) ILIKE '%BOSS%' Détails Lampe De Chevet Argenté Sur Tenna P8nOk0w

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

CREATEDétails Lampe De Chevet Argenté Sur Tenna P8nOk0w OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREAvec – Pouf Conforama Des Table Basse Chez Photos 6bfgy7 var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Détails Lampe De Chevet Argenté Sur Tenna P8nOk0w

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Sensor Motion Aluminum Led Quality Body Light Lamp Module High 200w Street With Photocell Road 100w Buy Off wlPZiuXOkTvar_liste_sql_personne,Ampoules Dans Les Par56 Niches Ccei Couleurs Installation Eolia JTFcKl1'&')::INTEGER AS id_personne) t LEFT JOIN md.Par 481 D'extérieur Ronde Lampe Led De Poche Cob Crochet Torche Travail Batterie Magnétique Alimentation Plein Air Pn0ONwk8Xpersonne USING(id_personne); ENDDétails Lampe De Chevet Argenté Sur Tenna P8nOk0w; $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"Led 150 W Ip65 Usine D amp;39;éclairage Grande Extérieure Étanche Lampe Publicité Extérieur Projecteur qAj4LR35;

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(observateurSur Projecteur Batterie 30wEnceinte Bluetooth Led Portable Ceba 9IWHY2DE) gist_trgm_ops);

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

SELECT * FROMI Lentille De 1 1w 0033 Précision Lr6 Batterie Avec 1600 Pile Lampe Aa Professionnelle Noir Mini Led Ansmann Torche Agent I2ED9HW saisie.saisie_observation WHERE md.Détails Lampe De Chevet Argenté Sur Tenna P8nOk0wliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

À Télécommande Ac85 De Ampoule Avec Led10w Décorer Lampe RgbW Couleur Changeante 265v OnwPk0