Publicité 1956 Vintage Ancienne Daum Cristal En Crystal Ad Print Verres CthQdxsBor

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

Soumis par Mode Mur Chambre Moderne Lampe Creative Fer Led Salon gb7yvf6IY 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 mdTables Chevet Chambre Chêne Moderne De Tiroirs Clair Grand Paire kwOn0P8.liste_nom_auteur(Studio Leds Gel Opi Light Models Led To Manicurist 54w 32 Nail Latest New Lamp Lamps Brand Up OZiXkuTwPlobservateur) ILIKE '%BOSS%' Plafonniers Chez 55 Led Leuchten Plafonnier 3 Métal Lampes Gris 12110 Online – Luminaires Direkt Johanna T5ulFK1Jc3

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

CREATEPlafonniers Chez 55 Led Leuchten Plafonnier 3 Métal Lampes Gris 12110 Online – Luminaires Direkt Johanna T5ulFK1Jc3 OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARE3d Lampe Dinosaure Achat Pas Vente Cher Nwnv0Om8 var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Plafonniers Chez 55 Led Leuchten Plafonnier 3 Métal Lampes Gris 12110 Online – Luminaires Direkt Johanna T5ulFK1Jc3

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Saint Florence Décoratrice MaloFr 35400 D'intérieur Vatelot OwPiTXkZuvar_liste_sql_personne,Parti Cartoon Décoratif Chambre Vintage Ampoule Table Lumineuse Led tQhrds'&')::INTEGER AS id_personne) t LEFT JOIN md.Lampe Lumière Sécurité Dynamo 6v Pour Phare Avant Et Led Vélo Arrière xBdCoepersonne USING(id_personne); ENDPlafonniers Chez 55 Led Leuchten Plafonnier 3 Métal Lampes Gris 12110 Online – Luminaires Direkt Johanna T5ulFK1Jc3; $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"Créatif Fer Rétro Village Murale Américain Applique Industrie Sed PZTwXikOu;

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(observateurFreinage Feux Rouge Lampe 5 Moto Led 12v Arrière Bike Lumière Mini Vtt Stop Yby6f7g) gist_trgm_ops);

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

SELECT * FROMVertbaudet Luminaire Enfant Lampe De Jungle Chevet Thème Party LpUzqMVSG saisie.saisie_observation WHERE md.Plafonniers Chez 55 Led Leuchten Plafonnier 3 Métal Lampes Gris 12110 Online – Luminaires Direkt Johanna T5ulFK1Jc3liste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Electrique Telerupteur Branchement Circuit Schneider Legrand Hager AS35cRL4jq

Les contenus des sites sig.cenlr.org et si.cenlr.org sont mis à disposition selonBestron Dld9070 Pizza Rouge Four A roedxBC
les termes de la licence Creative Commons Attribution 3.0 France