Project 'anaee-dev/si-ore-v2' was moved to 'anaee-dev/openadom/frontend'. Please update any links and bookmarks that may still have the old path.
Optimisation RLS sur la table data
Compare changes
Change le calcul des expressions des "policy" RLS pour la table Data.
Cela permet d'améliorer les performances sur la lecture des données (droit extraction
).
Notamment :
policy
créées ne font plus appel à la procédure stockée isAuthorized
: cela permet à l'optimiseur de requête de ne plus faire de seqscan et de mobiliser un indexANY
), on permet ainsi d'indexer le groupe de données et de mobiliser un indexgist_btree
, seul index capable de créer un index multi-colonne mêlant des colonnes de types ltree
(les autorisations), text
le groupe de données et tsrange
(le timeScope
)Au passage, il a fallu modifier l'init de l'appli pour déclencher un passage de flyway sur chaque schéma spécifique à chaque application (ici, pour créer l'index spécifique sur data
).
Ainsi, sur un comparatif portant sur 20 essais successifs, on obtient une moyenne sur un appel au chargement des données physico-chimie :
Note : les policy
ne sont pas migrées : il faut donc supprimer / recréer les groupes d'autorisations pour bénéficier des optimisations.