Développement #100575
sql: requêtes sur information_schema en dehors des migrations
0%
Description
Suite aux migrations en PG d'objets qui étaient sur le NFS, j'analyse tout le trafic SQL d'une instance wcs pour chercher d'éventuels problèmes. Ce faisant, j'ai pu observer que les crons utilisent énormement la méthode do_meta_table, qui fait à chaque appel deux requêtes sur information_schema.
Or les performances d'information_schema sont bien moins bonnes que celles des tables de base de PostgreSQL, il s'agit de vues complexes alors qu'on ne s'intéresse ici qu'à des valeurs très simples.
Je vois donc deux optimisations à faire :
1) arrêter d'utiliser information_schema dans ce cas et passer par les tables du pg_catalog et les types comme regclass
2) mettre en cache le résultat de do_meta_table pour éviter les appels inutiles
Le principal gain sera au niveau de la vitesse d'exécution des crons
Associated revisions
sql: fetch table and index from pg_class instead of information_schema (#100575)
3ms => 0.6ms
sql: remove calls to do_meta_table when unneeded (#100575)
sql: use 'if not exists' instead of checking catalog (#100575)
History
Updated by Robot Gitea 7 days ago
- Status changed from Nouveau to En cours
- Assignee set to Pierre Ducroquet
Pierre Ducroquet (pducroquet) a ouvert une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/wcs/pulls/2083
- Titre : WIP: sql: optimize do_meta_table (#100575)
- Modifications : https://git.entrouvert.org/entrouvert/wcs/pulls/2083/files
Updated by Robot Gitea 7 days ago
Frédéric Péters (fpeters) a relu et demandé des modifications sur une pull request sur Gitea concernant cette demande :
Updated by Robot Gitea 7 days ago
- Status changed from En cours to Solution proposée
Pierre Ducroquet (pducroquet) a demandé une relecture de Frédéric Péters (fpeters) sur une pull request sur Gitea concernant cette demande :
Updated by Robot Gitea 4 days ago
- Status changed from Solution proposée to Solution validée
Frédéric Péters (fpeters) a approuvé une pull request sur Gitea concernant cette demande :
Updated by Robot Gitea 3 days ago
- Status changed from Solution validée to Résolu (à déployer)
Pierre Ducroquet (pducroquet) a mergé une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/wcs/pulls/2083
- Titre : sql: optimize do_meta_table (#100575)
- Modifications : https://git.entrouvert.org/entrouvert/wcs/pulls/2083/files
Updated by Transition automatique 3 days ago
- Status changed from Résolu (à déployer) to Solution déployée
sql: fetch columns from pg_attribute instead of information_schema (#100575)
3ms => 0.3ms