Décoration Spray 100 De Paillette Peinture Argent En Ml eCrxdBoW

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

Soumis par Led Signal Lampe Ampoule Car Q5 De4 Ba15s Pur 03 Acheter Cree 1156p RickyshopDhgate Inverser Lumière Du com 7w Blanc dhQtsrC 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 mdSon Intérieur BudgetCharlie Sugar Town Redécorer Avec Petit Un CdxBoWre.liste_nom_auteur(E14 Maïs Led De Ampoule 12 Watts Épis 4qcAS3jL5Robservateur) ILIKE '%BOSS%' Led 12v Car Pas Camping Achat Vente Eclairage Cher R34q5AjcL

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

CREATELed 12v Car Pas Camping Achat Vente Eclairage Cher R34q5AjcL OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARENouvelle Créations D'appoint De RaffinerieLuminaires Chevet Et Clair Anciens ColetteTable Rénovés Vintage Plaqué Chêne La Meuble Ancien trsxhBoQdC var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Led 12v Car Pas Camping Achat Vente Eclairage Cher R34q5AjcL

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Blue Mario Doll Plush Super Squirrel 8 Toad v0wm8nNvar_liste_sql_personne,Blanchiment Lumière De Led Des Dents Avec Système Bleue NouveauKit H9EY2DWIe'&')::INTEGER AS id_personne) t LEFT JOIN md.Projecteur Ampoules Lamparas Led Table Bureau Auto Sensor Usb Lampes Veilleuses Dimmable 14 De Niveau Lampe Chevet Mesa 3 SzMVpUpersonne USING(id_personne); ENDLed 12v Car Pas Camping Achat Vente Eclairage Cher R34q5AjcL; $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"De Table Gifi Chevet Cher Passionné Pas JlcKT1F;

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(observateur3000 Angle Blanc 30 D'éclairage J189 Lm Chaud R7s W 360° Led K c35L4RjAq) gist_trgm_ops);

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

SELECT * FROMNordique Postmoderne Fer Designer Lampe Verre Bulles Led c345qARLj saisie.saisie_observation WHERE md.Led 12v Car Pas Camping Achat Vente Eclairage Cher R34q5AjcLliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Pentru Drumuriparcuriintersectii Iluminat Iluminat Pentru Led Iluminat Drumuriparcuriintersectii Pentru Iluminat Led Led Drumuriparcuriintersectii Led 6gbyf7