Projet

Général

Profil

Development #48624

Optimiser les accès en DB sur la vue settings des agendas rdv

Ajouté par Emmanuel Cazenave il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
17 novembre 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Alourdis par #47395, voir #47395#note-6 et #47395#note-7 pour un début d'explication.


Fichiers

Révisions associées

Révision 9e9a6d24 (diff)
Ajouté par Lauréline Guérin il y a plus de 3 ans

manager: add some data to test querysets (#48624)

Révision 1302ef18 (diff)
Ajouté par Lauréline Guérin il y a plus de 3 ans

manager: reduce querysets on agenda settings page (#48624)

Historique

#1

Mis à jour par Valentin Deniaud il y a plus de 3 ans

À traiter ici aussi, les exceptions jours fériés qui consomment également trop de requêtes (non couvert par les tests pour le moment), il faudrait un simple select_related('source') sur le qs des exceptions comme c'est déjà fait dans TimePeriodExceptionListView.

#2

Mis à jour par Lauréline Guérin il y a plus de 3 ans

  • Assigné à mis à Lauréline Guérin
#5

Mis à jour par Emmanuel Cazenave il y a plus de 3 ans

Sur l'essentiel je suis jaloux de pas avoir trouvé ça tout seul.

Je me dis peut-être avoir une implémentation par défaut de prefetched_exceptions, genre

@property
def prefetched_exceptions(self):
    if getattr(self, prefetched_exceptions_data, None) is None:
        self.prefetched_exception_data = TimePeriodException.objects.filter(Q(desk=desk) | Q(unavailability_calendar__desks=desk))
    return prefetched_exceptions_data

Avec du coup un desk.prefetched_exceptions_data = ... dans la vue, pour s'éviter les contorsions dans le test et pour filet de sécurité ?

#6

Mis à jour par Lauréline Guérin il y a plus de 3 ans

J'aime bien l'idée que ça pète si prefetched_exceptions n'est pas défini, ça évite l'utilisation irréfléchie de la méthode (ie sans avoir anticipé le prefetch), et les pb de perf :)

#7

Mis à jour par Emmanuel Cazenave il y a plus de 3 ans

  • Statut changé de Solution proposée à Solution validée

Ok, on ne peut pas refuser ça à quelqu'un qui surveille Sentry.

#8

Mis à jour par Lauréline Guérin il y a plus de 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 1302ef186fb7ac721cb1e46c2d892918a42e7332
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Thu Nov 19 17:21:00 2020 +0100

    manager: reduce querysets on agenda settings page (#48624)

commit 9e9a6d24c1ff70766f53b3e95d39f1d3473391bb
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Thu Nov 19 15:26:00 2020 +0100

    manager: add some data to test querysets (#48624)
#9

Mis à jour par Frédéric Péters il y a plus de 3 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF