8
votes

accdb vs mdb. Qui est plus rapide / meilleur?

Est-ce que quelqu'un a une expérience d'utilisation d'accès 2007 avec les versions antérieures d'accès (fichiers I.E. MDB).

Nous avons été mis à niveau, mais nous utilisons toujours le format MDB. Certains de notre code (en particulier docmd.transferdatabase Acimportreport) sont maintenant incroyablement lents.

J'ai essayé un test initial et j'ai converti notre client MDB à ACCDB et la transfert ci-dessus semblait mieux performer.

Je me demande maintenant si nous devrions mordre la balle et convertir tous les autres fichiers qui composent l'application. Il n'est pas nécessaire de répliquer ou de sécurité au niveau de l'utilisateur qui semblent être les seules limitations de la nouvelle version de l'ancien. Nous avons un client MDB, trois bases de données backend, puis 3000 MDB contenant chacune un seul rapport (ne demandez pas!).

La nouvelle version fonctionne-t-elle plus rapidement que l'ancienne - en particulier sur un réseau déjà en difficulté)?


4 commentaires

MDB est un format natif dans Access 2007. Un fichier MDB n'est donc pas un fichier "Version antérieure" du tout. L'accès 2000-, 2002-, 2003 et 2007 et 2007, les MDB sont tous originaux d'accès à 2007.


Je suppose que l'amélioration de la performance est venue de créer un nouveau fichier. Essayez de créer un nouveau MDB et de tout importer, et mon pari est-ce que cela fonctionnera plus rapidement que votre ancienne extrémité avant MDB.


Fait une nouvelle MDB en 2007 et importé le lot. Toujours plus rapide à l'aide du fichier ACCDB ....


Sachez que lorsque vous convertissez un MDB en ACCDB, l'accès remplacera certaines références sans demander. Par exemple, le goold Old Dao sera remplacé.


3 Réponses :


3
votes

faire quelque chose de nouveau dans Accdb (interface sage); Toute nouvelle base de données Créez dans MS SQL Server.

laisser les trucs existants dans la MDB; Si cela fonctionne maintenant, pourquoi gâcher. Les mises à niveau matérielles compenseront la dégradation de la performance que vous rencontrez.

Les MS plus tôt ou ultérieures annonceront qu'ils arrêtent de soutenir la MDB dans leur version actuelle de l'accès MS; A quel point la peine de le triage et de commencer à convertir au nouveau format. Mais ne faites pas la base de données accdb. Déplacez-le à quelque chose comme MS SQL Server.

La raison pour laquelle j'attendrais que vous soyez forcé par MS est qu'il est peu probable que vous obteniez l'approbation des détenteurs de cordes de bourse pour faire ces modifications maintenant; Mais quand vous avez trop forcé, leurs cordes de sac à main se détendent.


7 commentaires

Aaah. Nous aimerions passer à SQL Server, mais nous travaillons dans la zone de l'entreprise plutôt que dans la zone technologique. RAD Développement Si vous le souhaitez, nous sommes donc limités aux outils de bureau tels que Excel et accès ... plus de 50 utilisateurs sur un MDB de 500 Mo sur un réseau choquant - je suis content de ne être pas l'un des utilisateurs finaux!


Je dis utiliser accdb si Accdb a des fonctionnalités que vous avez vraiment besoin (comme l'intégration SharePoint). Sinon, restez avec MDB Même pour de nouveaux projets, car vous pouvez ensuite l'exécuter sur toutes les versions précédentes de l'accès à 2000, plutôt que de vous inquiéter de tous les postes de travail mis à niveau vers A2007.


Merci David (et re "natif" vs "avant"). Tout le monde a été mis à niveau ... Et maintenant, ils cherchent peut-être plus de RAM pour tous les PC.


MT, SQL Server n'est pas nécessairement l'affaire uniquement de la zone Tech, juste parce qu'il a le mot serveur dans son nom. Le mettre sur SQL Server peut également améliorer les choses pour eux également. Surtout si les requêtes peuvent exécuter sur le serveur avant que les données ne soient retombées sur le client.


@David W. Fenton: Le format ACCDB reçoit des corrections de bugs que le format MDB n'est pas par exemple. le bogue de tri décimal ( support.microsoft.com/kb/837148 ) et ms ne pas faire connaître le fait alors comment sauriez-vous jamais? C'est pourquoi il est toujours préférable d'aller avec le nouveau format pour de nouveaux projets. Le format MDB est officiellement obsolète autre que pour les projets pré-accès2007.


@Codeslave: la plupart des endroits qui refusent d'obtenir SQL Server le font, car les hommes d'affaires ne peuvent (ni ne pas) faire de la place dans leur budget pour un backend de DB approprié lorsqu'ils ont déjà accès.


@UNE. Scagnelli, c'est pourquoi nous avons les éditions Express et Developer. Toutefois, étant donné qu'ils sont disposés à effectuer un investissement de 100 $ par utilisation pour mettre à niveau MS Office à une version avec MS Access (plus de 50 utilisateurs plus de 50 $), ce qui est encore de 20 à 30 $ par utilisateur pour MS SQL également (4000 à 6 000 dollars). Certes, les gens d'affaires pourraient ne pas voir cela immédiatement, mais ... c'est juste une partie du travail.



1
votes

Je doute beaucoup qu'il y a beaucoup d'amélioration de la performance dans l'ACCDB VS MDB, bien que je suppose que les fonctions individuelles pourraient être meilleures ou pires. Je dis cela parce que le plus gros goulot d'étranglement est généralement lié au réseau.

Je suggérerais cependant d'exécuter des tests de synchronisation. Comparez les deux. Assurez-vous que le MDB est au format A2007. Quittez le MDB / ACCDB entre les tests comme l'accès au cas de la cache de cache. Exécutez le test à plusieurs reprises et si des différences majeures continuent de la répercuter jusqu'à ce que vous obteniez trois points à peu près au même moment.

juste curieux cependant. Pourquoi les gens font-ils la docmd.transferdatabase ACIMPORTREPORTE tellement? Ou est-ce une partie de vos 3000 MDB avec des rapports en eux?


2 commentaires

Tache sur. Cela fait partie de nos 3000 MDB. Nous avons une application qui soutient beaucoup de rapports différents pour différents clients. Celles-ci sont importées au moment de l'exécution en fonction du rapport qui est exécuté. À l'origine, ils étaient tous dans un grand MDB, mais l'importation de celles-ci était ridiculement lente une fois que vous aviez plus d'une connexion à cette base de données. Avoir des bases de données séparées pour chaque RPT était beaucoup plus rapide.


Je pense que l'un des gars a joué avec une bibliothèque / MDA pour tous les rapports, mais sans beaucoup de chance. Ces rapports doivent être modifiés assez bien pour que nous modifiions simplement le rapport sur le réseau et que le client reprend le nouveau. Personnellement, je ne suis pas un gros fan de la configuration actuelle car nous ne pouvons pas utiliser de MDE, ni même savoir que tout notre code compile.



1
votes

Un test rapide sur une base de données avec des références savantes de 187 longueurs de longueur a montré une réduction de 1 671 168 octets à 1 306 624 octets à 1 306 624.

Voici un article avec certains pros et inconvénients:

Formats d'accès au fichier: Accdb vs MDB

Ils indiquent avec .Accdb, vous pouvez:

  • Inclure les pièces jointes de votre base de données
  • Utilisez des champs multivalués
  • Autoriser SharePoint et Outlook pour faire confiance à ces fichiers, en raison de "[i] MPROSPOSITIONS dans le modèle de sécurité de la base de données [qui] permet la validation de la sécurité des fichiers de base de données"
  • ont supposé des améliorations de cryptographie en raison de l'utilisation de l'API Cryptographics Windows

    Voici un article de M $ qui indique comment faire des pièces jointes en tant que champs d'enregistrement de base de données:

    Joindre des fichiers et des graphiques aux enregistrements de votre base de données

    Le premier article dit également: "Il y a également deux limitations que vous devriez envisager lors de l'utilisation de CACDB. Les bases de données ACCDB ne prennent pas en charge la sécurité ou la réplication au niveau de l'utilisateur." J'ai fait une copie d'une base de données et il a ouvert un problème - même dans un répertoire différent; Donc, je ne sais pas ce que vous manquez en termes de réplication.

    Remarque: je n'ai pas pu enregistrer comme pour le convertir en un fichier .Accdb, comme indiqué dans le premier article. J'ai fait déposer | Sauvegarder et publier, et ça m'a laissé.


0 commentaires