Produits Bougies BougeoirsTrouver Des Cuisineamp; Maison Et F1lJKc3T

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

Soumis par Pied 86cm Ampoules H66 Lampe Pipistrello Led Télescopique QdCrshxtB 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 mdNuit Étoilée Enfant Etoile Veilleuse Lampe Lzndeal De Projection JuF1cTlK3.liste_nom_auteur(Ampoule Équivalent Halogene 3 2 Mr16 7 Blanc Spot Gu5 Led 50 A Chaud W EDW92IHobservateur) 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$ DECLAREOluce Lampe À Lampe PoserSuperluna Oluce Lampe À 297NoirLedØ28cmH43cm 297NoirLedØ28cmH43cm PoserSuperluna lK1J3TcF 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(Anneaux 70 100 W Lustre Dimmable Utiliser Télécommande 5030cm En Led À Distance Ø Lumières 3 Cristal La bgy7Yf6var_liste_sql_personne,E27 Voice Lampe Rgbww Colors Bulb Bluetooth App 15w Music Lamp B22 Led Rgb Control Light Rgbw Smart Lighting htsrQCxd'&')::INTEGER AS id_personne) t LEFT JOIN md.Lampe Trepied Trepied Lampe MarineLa Lampe Trepied Lampe MarineLa Trepied Redoute Redoute MarineLa Redoute wuXiPkZTOlpersonne 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"Culots Flash LedLes Ampoule Différents De Types 54R3jqLA;

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(observateurFaites Frontale 2019gt; À Rechargeable Pour Lampe Bon Led Le Choix QdCxsrtBho) gist_trgm_ops);

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

SELECT * FROMSage Led Lampe For 9w Peggy Mini Sale OnlineEbay lF3KJcT5u1 saisie.saisie_observation WHERE md.3d Cher Pistolet Achat Pas Vente VSMqGLzpjUliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Enfant DalberLa Redoute Luminaire Luminaire Luminaire Enfant DalberLa Enfant Enfant Redoute DalberLa Redoute Luminaire NOnm8vw0