Bonjour,
D'habitude, avec une petite recherche et la consultation de quelques articles, je trouve assez rapidement des pistes pour résoudre mes problèmes, mais là, je ne comprends vraiment pas...
J'ai 4 bases de données, de structure quasi-identique parce qu'il s'agit des bases de données sur lesquelles travaille un logiciel de production unique (même si nous avons 4 instances du logiciel parce que 4 activités différentes donc 4 paramétrages différents... enfin je peux pas trop rentrer dans le détail, mais l'idée est là ^^).
Pour un atelier, j'ai besoin de données extraites des 4 bases (ALU, PVC, VB, VR).
J'avais donc jusqu'à la semaine dernière une vue faisant l'UNION de 4 sous-requêtes pratiquement identiques, et qui s'exécutait en quelques secondes.
Cette semaine, la vue a décidé de ne plus rendre service, et nous offre en dédommagement des expirations de délai.
On l'a donc partagée en 4 vues différentes, pour faire l'UNION sur une cinquième, pour identifier le problème.
Chacune des vues met entre 1 et 4 secondes à renvoyer un résultat, ce qui est correct, nos serveurs étant complètement saturés en ce moment...
Mais tout se complique quand on recommence à faire des UNION ou même des UNION ALL...
En effet, si l'on concatène les résultats des deux premières vues, ALU et PVC, tout va bien : 1 seconde. Idem pour les deux autres vues, VB et VR.
Mais dès qu'on mixe ces deux "groupes", avec une union de ALU et VB, par exemple, on a l'impression de lui parler chinois, et une exécution super lente commence : un affichage laborieux par blocs de 256 lignes, et une attente de plus de 3 minutes !
On a essayé de trouver des différences dans les types des champs, mais rien n'y fait, impossible de comprendre ce qui différencie ALU et PVC de VB et VR, sachant que ces 4 bases sont utilisées par la même appli, et ont été créées de la même façon...
Si vous avez des pistes de recherche, je suis preneuse...
J'espère que mes explications confuses vous paraîtront claires; j'ai essayé de vous donner un maximum d'informations pour comprendre...
Dans l'attente de petits indices...
Bon appétit !
Merci d'avoir pris le temps de lire.
Delphine![]()
Partager