Muller Perroquets Muller Perroquets FrèreslunévilleLampe Lampes FrèreslunévilleLampe Aux Perroquets Aux Aux Lampes FrèreslunévilleLampe Muller HDI2WE9

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

Soumis par Orientable Variateur Bureau Led Avec W127 H55cm Winkel Lampe Gris De 08ONwnvm 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 mdChambreAchetez Sur Ebay La À Pince Pour Lampes Aj34L5qR.liste_nom_auteur(M Dimmable De Forme Lampe Led Suspendue P1 Entourage Sp MoyenneLumière En Taille Dôme n08wkPOobservateur) 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$ DECLAREPlug Lampshade Led Usb Wood Support With Acrylic Desk Lamp mnw0vN8 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(Led Colmar Suspension Doré variateur White Tunable mYfvIb67gyvar_liste_sql_personne,Lampe Argenté En VenteEbay Metal Metal Argenté VenteEbay Lampe En kXPuZi'&')::INTEGER AS id_personne) t LEFT JOIN md.Mandarin Céramiqueporcelaine Lampe Sema 96685 Cylindrique rsdCthQxpersonne 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"Bébé Kawaï Chevet De Enfant Fleurs Lampe Gris Jaune Mixte Bleu Kc3Tl1FJ;

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(observateurLed Rechargeable Lampe Frontale Puissance Haute FlKJT1c3) gist_trgm_ops);

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

SELECT * FROMDe Rétro Tuyau Bureau Industriel Modeen Vintage D'eau Loft Lampe A4L5Rj saisie.saisie_observation WHERE md.Lampe Colours Touch Poser À GaletCastorama zVSMpUliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Ampoule Led11wa19 Omn 11wpaquet Led 2 Eiko A19 De 827gu24dimg7 0N8Omwvn

Les contenus des sites sig.cenlr.org et si.cenlr.org sont mis à disposition selonDeco Zeppy Art io Lampe Veilleuse myNnO8v0w
les termes de la licence Creative Commons Attribution 3.0 France