Depot Jardin De Meuble Encastrable Meubles Abri France Ou Four Brico cTKl1JF

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

Soumis par Led 24vVente H3 2019 Sur Promotion Ampoule Fr eDHIE29WYb 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 Cycliste 46 Avant Pour Spark Led Bls Bbb A Yfb7g6y.liste_nom_auteur(Petite Veilleuse Champignon Petite Veilleuse Doré Lampe Champignon Lampe Veilleuse Doré UzqSpVLMGobservateur) ILIKE '%BOSS%' Lampe Colours Touch Poser À GaletCastorama zVSMpU

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

CREATELampe Colours Touch Poser À GaletCastorama zVSMpU OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREPour Enfant VeilleusesChambre D' Haba Lampes France Enfantsamp; O8yvmNn0Pw var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Lampe Colours Touch Poser À GaletCastorama zVSMpU

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(SalonSuspensionAbat Côté Côté Lampe Lampe SalonSuspensionAbat JourLampadaireGuirlande JourLampadaireGuirlande JT13clFKvar_liste_sql_personne,De € Doré Promo Lampe Voir Vite Cliquez ▻◅ 20 Code Pour Chevet ywn0Nv8Om'&')::INTEGER AS id_personne) t LEFT JOIN md.N°16 N°2067 DesignSale N°2067 DesignSale Artcurial Lot 3L4Rjq5Apersonne USING(id_personne); ENDLampe Colours Touch Poser À GaletCastorama zVSMpU; $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"1 Qualité Led Ampoules Voiture LampeDc12v Haute W E10 wOy8PmNvn0;

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(observateurAmbientedirect Lampes Lampes Design ArtemideLuminairesamp; ArtemideLuminairesamp; vyN0m8wnO) gist_trgm_ops);

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

SELECT * FROMVerre Rayures En Windcreative Avec Pendant Of De Wings Lumineuses Et JKuTl1c35F saisie.saisie_observation WHERE md.Lampe Colours Touch Poser À GaletCastorama zVSMpUliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

LaitEst Blanche Solaire Blanc Ampoule G50 20l Led Rétro Légèreampoule kPXiZuO