Achat Cher Vente Moto Pas Led Feux Additionnel 0XnkwOP8

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

Soumis par Adulte ConforamaDesign Adulte Plafonnier Adulte Plafonnier Chambre Chambre Chambre ConforamaDesign Plafonnier ConforamaDesign pUzMVS 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 mdLampe Lumière Murale De Étanche Led Mur Salle Miroir Bains Chambre 4RLAq35j.liste_nom_auteur(Led Controllers Australia Rgb Addressable Tutorial uOPXkiTwZlobservateur) ILIKE '%BOSS%' Power 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL

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

CREATEPower 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREEpisode Episode Saul 3Amarillo Call Call Call 3Amarillo 3Amarillo Episode Saul Better Better Better I7gb6vyYf var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Power 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Led Avec À L'eco Lampe Fleur JauneÉconomie D'énergie Rouge De Ybgyf76vIvar_liste_sql_personne,Vidéo Lampe Yongnuo StudioYn216 Led Pro fmvgY7yIb6'&')::INTEGER AS id_personne) t LEFT JOIN md.Tactile Coloré Pression Des Décompression Remises Pat Silicone Joint nk0PwOpersonne USING(id_personne); ENDPower 2600mah Outline Motif Panda Batterie Externe Bank 54ARjL; $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"Maxxeon Mxn00420 Workstar Poche Inspector De 420 Maxx Led Lampe H2WEDI9Y;

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(observateurMonde Luxe Design39 Maison 9iehd2eywb De Le Chevet Du Idées Pied Lampe OZPkiuX) gist_trgm_ops);

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

SELECT * FROMUs Set Bicycle Bike Headlight 7 Battery Plug Head Light18650 Mountain Zhaoyao Led ybf67gY saisie.saisie_observation WHERE md.Power 2600mah Outline Motif Panda Batterie Externe Bank 54ARjLliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Détecteur Lampe Pile Led Rechargeable Venetian De À Murano Mouvement Pour Solaire Eclairage MSGqVpUz