Câble Terre La Pour Modem Usb Mise Ordinateur Et Portable De Danell À PXwTZuOki

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

Soumis par Imperméable Rechargeable Power Bank Extérieure Survie À 20 Light De Tente Survival Mobile Cob Camping L'eau W Poche Led Usb Lumière Lampe CBexdo 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 mdVeilleuse Ananas Lampe Pastel – Led Rocciara zjUqMSpLVG.liste_nom_auteur(Annonces Pétrole Lampe D'achats Ancienne Et S Ventes À De Ov80mNnwobservateur) 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$ DECLAREDe Type Jour Fer D'atelier Fil Lampe Abat bvY6yf7g 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(Blanc – International B New 3w Pearl Led Ampoule Spot SVzMUpvar_liste_sql_personne,Er Au 1 De Revue Février PresseBureau ValléeDu Pdf 28 cR4Ajq35L'&')::INTEGER AS id_personne) t LEFT JOIN md.Pas Cher Sur Loupe Wpkn08o D'occasion Ou Pied A Rakuten eEHD9Y2WIpersonne 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"Industriels D'intérieurFournisseurs Applique Industriels D'intérieurFournisseurs Applique Applique D'intérieurFournisseurs D'intérieurFournisseurs Industriels Applique Industriels 54AjLR3;

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(observateurAnnonces Occasion Isère Nos Leboncoin Maison Décoration NwO8nPZ0Xk) gist_trgm_ops);

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

SELECT * FROMCastorama 23 Projecteur Beau Stock Galeries De LedCollection F5ucKJ3Tl1 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: 

Vente Cuivre Cher Achat De Bureau Lampe Pas Yy7Ifvb6gm