Avec Access, forcément, ce n'est pas rapide.
Les requêtes passent par une vingtaine de couches (objet, Jet, ActiveX, etc), et je n'ai jamais vu une basse Access qui tourne avec des temps corrects.
On dirait que M$ l'a fait exprès pour vendre SQL Server, qui lui est un moteur de base de données tournant à peu près au niveau des autres.
Cela dit, on peut optimiser le fonctionnement d'Access avec beaucoup d'essais différents et en mesurant les temps pour chaque essai.
L'un des problèmes est qu'il n'existe pas un seul Access, mais plusieurs selon les versions et les implantations, et qu'une optimisation qui marche avec une version et un environnement peut ne pas être efficace avec une autre version ou un autre environnement. L'optimisation qu'on avait fini par adopter dans l'une des sociétés où je travaillais, consistait à conserver l'interface Access (les forms) mais de mettre les données dans d'autres bases de données et d'y accéder grâce au système des tables attachées avec les bons drivers, et de faire tourner certaines requêtes en batch de nuit. Dans une autre société, on avait carrément abandonné Access. C'était au début des années 2000, et Access s'est peut-être amélioré, je ne sais pas.
Bref, je ne crois pas que le problème vienne des entrées/sorties, mais de la manière dont Access est fait.
Message édité par olivthill le 29-05-2014 à 21:53:02