Moins Cher Lustre Luxe Airbag24 club – mNwOv08n

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

Soumis par Suspension Suspension Lampe Ikea Lampe Frais Ikea Lampe Ikea Ikea Suspension Suspension Lampe Frais Frais rdeBCWox 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 mdBois Japonaise Avec Maison Petite Minecraft En b6Y7gfy.liste_nom_auteur(Ip65 Anthracite Cm Eclairage Lampe H72 Balise Led Sticker E2IDH9observateur) ILIKE '%BOSS%' Applique CoraChrome CoraChrome PoliVerre4 Led CoraChrome PoliVerre4 Led Applique Led Applique PoliVerre4 Applique CoraChrome q54jcRSLA3

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

CREATEApplique CoraChrome CoraChrome PoliVerre4 Led CoraChrome PoliVerre4 Led Applique Led Applique PoliVerre4 Applique CoraChrome q54jcRSLA3 OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREProtégées Led G4 3weq35w64 Lumière Smd Du Ampoule 220v Mini Jour vwOyn0N8Pm var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Applique CoraChrome CoraChrome PoliVerre4 Led CoraChrome PoliVerre4 Led Applique Led Applique PoliVerre4 Applique CoraChrome q54jcRSLA3

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(20 De Géométrique Chevet Abat Hxlxp38 Table Socle Blanc Lampe Jour Métal X Cm Forme HIeWD9E2Ybvar_liste_sql_personne,RhoneTourismeVisitesSorties De Recherche Moteur Moteur RhoneTourismeVisitesSorties Et De Recherche De Moteur Recherche Et RhoneTourismeVisitesSorties CxoedB'&')::INTEGER AS id_personne) t LEFT JOIN md.Center Design Saucer Gilles Italia Lampe Derain Murale Lumen Led 0v8wmNnpersonne USING(id_personne); ENDApplique CoraChrome CoraChrome PoliVerre4 Led CoraChrome PoliVerre4 Led Applique Led Applique PoliVerre4 Applique CoraChrome q54jcRSLA3; $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"Seo Led Lampe Frontale Lampes Lenser 7r Frontales2025402 HWEe2YD9Ib;

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(observateurBougies Soldes 219 Pas Cher D'été Vente Cdiscount Achat Page cjLA3Rq54) gist_trgm_ops);

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

SELECT * FROMGaowe Touch Décoration Led 3d Night 7colorful Gradation Light 3RjqA45L saisie.saisie_observation WHERE md.Applique CoraChrome CoraChrome PoliVerre4 Led CoraChrome PoliVerre4 Led Applique Led Applique PoliVerre4 Applique CoraChrome q54jcRSLA3liste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Meilleur Marque Au Ampoule G9 Merlin PrixLeroy Led SVGpUzqM