Quand et comment augmenter la taille des bases de données Microsoft Access vers SQL Server

Maintenant que vous avez vu les différentes architectures et options de moteur de base de données disponibles, vous voudrez explorer les points de décision et les paramètres pour prendre la décision de taille.

La partie la plus importante de ce processus est de comprendre que toutes les bases d’accès ne doivent pas être dimensionnées. En fait, la majorité des applications d’accès ne devraient pas être dimensionnées — le coût et la perturbation de l’activité ne sont tout simplement pas une utilisation rentable de vos ressources. Ces bases de données fonctionnent bien au jour le jour et n’ont pas besoin d’attributs tels que l’évolutivité, la sécurité et la fiabilité à 100%. De toutes les bases de données Accès de votre organisation, seules quelques-unes sont candidates à une augmentation de la taille.

De plus, à partir de la liste des candidats à la mise à l’échelle, une majorité peut être mise à l’échelle en utilisant un processus rentable où seules les données sont déplacées vers SQL Server. Toutes les fonctionnalités de l’application en termes de formulaires et de rapports sont conservées en accès. Seul le plus petit pourcentage de projets de mise à l’échelle implique la réécriture de l’application d’accès dans un nouvel environnement tel que .NET.

 Opportunités de renforcement de Microsoft Access pour SQL Server

La section suivante examine chacun des domaines clés impliqués dans la planification de la base de données et explique les performances d’Access dans chaque domaine.

Sécurité

Microsoft Access propose trois mécanismes de sécurité différents.

  1. Mots de passe de base de données : Attribuez un mot de passe à une base de données. Seuls les utilisateurs qui connaissent le mot de passe peuvent ouvrir la base de données.
  2. Sécurité des groupes de travail Jet : Les autorisations des utilisateurs, des groupes et des objets peuvent être définies pour restreindre qui peut afficher/modifier les données et ce qu’ils peuvent exécuter. La sécurité des groupes de travail est disponible pour les bases de données MDB, mais pas pour les bases de données ACCDB.
  3. Cryptage des fichiers : Le contenu de la base de données peut être crypté au niveau du fichier. Le cryptage ACCDB est nettement meilleur que le cryptage pour les BMD.

Malheureusement, ces mécanismes ne sont ni robustes ni fiables. Les mots de passe des bases de données utilisent un mécanisme de cryptage très simple. En fait, la suppression d’un mot de passe de base de données Access est une question simple étant donné que des « suppresseurs de mots de passe gratuits et commerciaux se trouvent facilement sur le Web. Bien que les utilisateurs d’accès ne soient pas préoccupés par de telles lacunes, les responsables informatiques devraient certainement l’être.

Bien que la sécurité de Jet Workgroup soit plus robuste, elle laisse toujours le contenu de l’ensemble de la base de données MDB ouvert depuis le système de fichiers. Étant donné que toutes les données et le code de la table sont stockés en clair, il est trivial d’ouvrir un fichier MDB dans un éditeur compatible avec les chaînes et d’afficher le code, les mots de passe et les données de la table.

Enfin, comme l’accès nécessite des autorisations de lecture complètes pour tous les utilisateurs du fichier de base de données réel, toute personne pouvant voir un lecteur réseau partagé peut partir avec la base de données sur un disque ou un CDR ou l’envoyer par e-mail en dehors de votre organisation.

Si la sécurité est importante, SQL Server est beaucoup plus sécurisé que Microsoft Access, Excel, Word ou tout autre programme qui stocke ses fichiers directement sur le disque dur accessible à l’utilisateur.

Fiabilité et maintenance

La fiabilité est l’un des points de référence clés à examiner lors de l’augmentation des effectifs. En effet, pour de nombreuses applications critiques, la fiabilité est la considération la plus importante. Microsoft Access n’est pas aussi fiable que SQL Server pour plusieurs raisons.

Corruption de base de données

Lorsque les bases de données Microsoft Access/Jet rencontrent une erreur interne inattendue ou un problème de connexion, elles peuvent être corrompues. Une base de données corrompue bloque généralement tous les utilisateurs de la base de données et entraîne une perte de données et une perturbation de l’activité.

Les bases de données Microsoft Access/Jet sont plus sujettes à la corruption que SQL Server pour un certain nombre de raisons. Comme Access/Jet utilise un modèle de partage de fichiers, tous les utilisateurs détiennent simultanément des connexions actives aux données. Si l’un de ces utilisateurs perd la connexion de manière inattendue, la base de données peut être corrompue. La perte de connexion peut se produire si la connexion réseau de l’utilisateur est intermittente, si les versions de pilotes ne sont pas en cours ou si des versions contradictoires des DLL Jet sont utilisées pour lire le même fichier de base de données.

Microsoft Access inclut un utilitaire Compact/de réparation, mais la corruption grave de la base de données n’est pas corrigée par cet utilitaire. Des services de réparation tiers sont disponibles, mais cela nécessite d’envoyer la base de données affectée à un autre emplacement, de payer des frais et d’attendre qu’elle soit retournée avec des résultats mitigés.

Problèmes de maintenance

Windows permet de copier une base de données Microsoft Access même si les utilisateurs l’ont ouverte, vous pouvez donc créer une sauvegarde, mais cela peut poser problème si quelqu’un modifie les données au moment de la copie du fichier.

Compacter une base de données Microsoft Access nécessite que tous les utilisateurs soient hors de la base de données, ce qui est problématique pour les solutions exécutées 24h/24 et 7j/7. Un verrou est placé sur la base de données au niveau du fichier (*.ldb ou *.fichiers laccdb) dès qu’il est ouvert par le premier utilisateur.

 Planifiez le Compactage et la réparation de la base de données Microsoft Access  Surveillez vos bases de données Microsoft Access en temps réel Dans un environnement multi-utilisateurs, Microsoft Access ne vous indique pas qui se trouve actuellement dans la base de données, ce qui peut être un casse-tête administratif pour faire sortir les gens du système. Notre programme d’administration Total Access vous permet de surveiller les utilisateurs entrant et sortant de la base de données en temps réel, ce qui aide et peut compacter la base de données après la sortie de tout le monde, mais ce n’est pas une fonctionnalité intégrée de Microsoft Access.

Il est souvent difficile de coordonner le processus pour s’assurer que tous les utilisateurs se déconnectent d’une application d’accès avant d’effectuer une sauvegarde.Les scénarios typiques impliquent que les utilisateurs laissent leur ordinateur allumé lorsqu’ils quittent le bureau pour la journée. Cela laisse la base de données ouverte et le logiciel de sauvegarde ne pourra pas copier de manière fiable le fichier de base de données. Souvent, cela n’est détecté qu’après l’échec de la sauvegarde, ce qui laisse l’administrateur système traquer le problème et espérer qu’il soit résolu avant la prochaine exécution de la sauvegarde.

De plus, Microsoft Access ne s’auto-ajuste pas comme SQL Server. Il ne récupère pas automatiquement l’espace de base de données perdu ni n’optimise les index et les requêtes. Cet entretien est effectué en exécutant la fonction repair/compact. Notre programme Total Visual Agent vous permet d’automatiser cela selon un calendrier que vous spécifiez et de maintenir une piste d’audit, mais ce n’est pas une fonctionnalité intégrée de Microsoft Access.

Si une organisation ne sauvegarde pas régulièrement des bases de données de bureau individuelles, les utilisateurs peuvent créer des bases de données Access sur leur PC qui ne sont jamais sauvegardées ou maintenues. Les organisations peuvent les traiter comme des données utilisateur qui peuvent être perdues comme s’il s’agissait d’une feuille de calcul Excel ou d’un document Word, mais de meilleures politiques devraient être en place afin que les utilisateurs puissent enregistrer leurs bases de données où l’administration système de base est fournie.

Les bases de données Microsoft Access doivent être sauvegardées pour la reprise après sinistre et compactées périodiquement pour rester en bonne santé. Un système automatisé devrait être mis en place pour prendre en charge les nombreuses bases de données d’accès qui existent aujourd’hui et celles créées à l’avenir. La mise à niveau de SQL Server doit être envisagée pour les bases de données où de tels processus automatisés ne peuvent pas être mis en œuvre en raison de l’utilisation continue de la base de données ou du coût élevé de la perte de données.

Évolutivité

L’évolutivité est définie comme la capacité d’une application à fonctionner de manière acceptable à mesure que le nombre d’utilisateurs ou de processus appelant l’application augmente. Dans certaines situations, Microsoft Access/Jet ne peut pas évoluer pour prendre en charge la demande sur la base de données.

Architecture de base de données fractionnée

Avant de procéder à la mise à l’échelle, votre base de données Access doit avoir une architecture de base de données fractionnée. Cela sépare la base de données d’applications utilisateur de la base de données de données partagées back-end. Les liens de la base de données d’applications frontales vers la base de données partagée et les mises à niveau sont plus faciles car les données n’ont pas besoin d’être modifiées pour les nouvelles versions (à condition que les structures de tables ne soient pas modifiées). Pour plus d’informations, consultez notre article sur l’architecture de base de données fractionnée Microsoft Access pour Prendre en charge les environnements multi-utilisateurs, Améliorer les Performances et Simplifier la maintenabilité. L’architecture de base de données fractionnée contribuera également à une entreprise de taille croissante pour préserver le front-end d’accès existant.

Si une seule copie d’une base de données Microsoft Access réside sur un lecteur réseau et est ouverte par plusieurs utilisateurs à la fois, vous pouvez rencontrer un problème d’évolutivité. Mais cela devrait être résolu en utilisant une architecture de base de données fractionnée plutôt que de passer à SQL Server.

Nombre d’utilisateurs simultanés

Il existe des mythes selon lesquels les bases de données Microsoft Access ne peuvent pas prendre en charge plus de 20 utilisateurs. Cela a peut-être été le cas lorsque Microsoft Access a été introduit en 1992, mais cela n’a PAS été le cas depuis un certain temps.

Microsoft Access permet techniquement jusqu’à 255 connexions par base de données. Cela signifie qu’il peut être utilisé pour des applications pour des équipes plusieurs fois que si elles n’ont pas toutes besoin de l’utiliser en même temps.

Le nombre de connexions/utilisateurs qu’une base de données Access peut prendre en charge dépend de la qualité de la conception et de la mise en œuvre de l’application. Une application d’accès bien conçue peut prendre en charge plus de 100 utilisateurs simultanés avec des performances décentes. D’autre part, une application d’accès mal conçue peut s’exécuter lors d’une exploration avec deux utilisateurs. Ou certains processus prennent du temps et seront lents quelle que soit la base de données utilisée. Il ne s’agit pas vraiment de la technologie mais de la mise en œuvre.

Malheureusement, de nombreuses bases de données Access ne sont pas bien conçues ou mises en œuvre avec les meilleures pratiques. En effet, la plupart des bases de données Access sont créées par des utilisateurs qui n’ont tout simplement pas l’expérience ou les connaissances nécessaires pour créer des applications de base de données professionnelles. Ils sont construits au fil du temps et de nouvelles fonctionnalités et modèles de données sont ajoutés en fonction des besoins. Le résultat est une solution globale qui ne peut pas prendre en charge de manière fiable plus de quelques utilisateurs.

Ne pas augmenter la taille des applications Microsoft Access pour des raisons de nombre d’utilisateurs si le nombre d’utilisateurs simultanés est relativement faible. Une augmentation de la taille devrait être envisagée si l’on a besoin de prendre en charge plus de 100 utilisateurs simultanés et plus à l’avenir.

Taille maximale de la base de données

Chaque base de données Microsoft Access a une taille maximale de 2 Go. Cela représente beaucoup de données textuelles et numériques, mais peut être facilement dépassé si des fichiers et des graphiques sont stockés. Pour la grande majorité des bases de données Microsoft Access, c’est beaucoup plus grand que la base de données n’obtiendra jamais. Parfois, les bases de données deviennent volumineuses, mais un compact les réduit généralement à une taille plus raisonnable. Assurez-vous également de décompiler vos bases de données Microsoft Access de temps en temps lors du compactage.

Avec une architecture de base de données fractionnée, une application Microsoft Access peut se lier aux données de plusieurs bases de données Microsoft Access qui totalisent plus de 2 Go. Bien sûr, ce n’est pas une bonne conception si les données ne doivent pas être réparties sur plusieurs tables ou bases de données.

Une augmentation de la taille doit être envisagée si la base de données dépasse 1 Go ou dépassera 2 Go dans un proche avenir.

Différentes versions de Microsoft Access et Jet

 Lanceur de base de données Microsoft Access Il existe de nombreuses versions de Microsoft Access. Une solution de base de données Access peut dépendre d’une version particulière d’un format de base de données Access, s’appuyer sur des fonctionnalités qui ne sont disponibles que sur certaines versions d’Access, des composants tels que ADO et DAO, etc. Bien qu’il soit facile de distribuer une base de données Access aux utilisateurs dont Access est déjà installé sur leur PC, il n’est pas si facile de contrôler la version d’Access ouverte pour l’exécuter.

Plusieurs versions d’Access peuvent être installées sur un PC. L’ouverture d’un fichier ACCDB ou MDB lance directement la version d’accès associée à cette extension de fichier (généralement la dernière version d’accès ouverte).

De plus, lors de l’introduction d’Access 2000, le nouveau format de fichier MDB n’était pas compatible avec la version antérieure d’Access 97. L’ouverture de la base de données dans Access 2000 (ou une version ultérieure) pouvait mettre à niveau la base de données vers le nouveau format et empêcher les utilisateurs de l’ancienne version de l’ouvrir, ce qui posait un problème dans les environnements multi-utilisateurs. Ce problème ne s’est pas reproduit depuis la version 2000.

Notre programme de démarrage Total Access aide les organisations à gérer et déployer de manière centralisée les bases de données Microsoft Access sur le bureau de chaque utilisateur et à contrôler la version d’Access lancée pour celui-ci. Cela facilite la distribution de vos applications d’accès avec un raccourci, et la dernière version de votre base de données est toujours installée sur la machine de chaque utilisateur. Il facilite également la mise à niveau de votre application d’une version d’Access à une autre.

Les problèmes de gestion des différentes versions de Microsoft Access ou de distribution des mises à jour des bases de données Microsoft Access ne sont pas résolus en migrant vers SQL Server si vous conservez le front-end d’accès de votre base de données. Il ne peut être résolu qu’en remplaçant complètement Microsoft Access. Cela peut résoudre le problème immédiat, mais cela empêche les utilisateurs de faire leur travail. Nous avons vu des organisations interdire l’accès à Microsoft uniquement aux employés pour qu’ils achètent des produits de base de données pires, car le problème de base de données n’a pas disparu. Pour la plupart des organisations, il n’est pas pratique d’utiliser des développeurs professionnels pour créer toutes les bases de données nécessaires lorsque la plupart peuvent être gérées par les utilisateurs finaux.

Performance

La performance est une raison courante pour laquelle les utilisateurs souhaitent mettre à niveau leurs bases de données Microsoft Access vers SQL Server. Il existe une hypothèse selon laquelle SQL Server s’exécutera plus rapidement qu’une base de données Microsoft Access. Après tout, SQL Server est géré par un serveur distinct qui n’envoie que les enregistrements demandés et peut utiliser plusieurs PROCESSEURS et machines pour gérer d’énormes ensembles de données.

Microsoft Access, étant basé sur un fichier, envoie l’intégralité de la base de données, de la table ou de l’index en fonction de la demande à traiter par le client (PC).

 Analyseur de base de données Microsoft Access Bien que cela donnerait un avantage à l’approche du serveur, nous avons constaté que les performances ne sont PAS améliorées dans de nombreuses situations. Voici quelques raisons:

  • De nombreuses bases de données Access sont relativement petites (moins de 100 Mo). Avec la connectivité matérielle et réseau actuelle, les quantités de données transmises sont presque instantanées, que ce soit quelques enregistrements ou la table entière.
  • SQL Server effectue un travail supplémentaire que les bases de données Access ne font pas. Par exemple, SQL Server peut gérer un journal des transactions et effectue une maintenance continue qui ajoute des frais généraux. Nous avons constaté des baisses de performances lorsque les petites bases de données sont dimensionnées en SQL Server.
  • SQL Server est conçu pour gérer de très grandes bases de données bien au-delà de la limite d’accès de 2 Go. Il n’est pas optimisé pour ce qu’il considérerait comme de minuscules bases de données.
  • L’exécution de requêtes à partir de différentes sources de tables liées peut ne pas bénéficier de l’optimisation SQL Server car le travail est toujours effectué par Access
  • La mise en cache des données par Microsoft Access pour les tables d’accès existe car elle sait si les données ont changé. Pour les données SQL Server, la mise en cache en mémoire n’est pas possible car les données peuvent avoir changé depuis la dernière requête.
  • Un ensemble de tables, de requêtes ou de code VBA mal conçu va s’exécuter lentement, que les données soient dans Access ou SQL Server.

Avant de passer à SQL Server pour des raisons de performances, assurez-vous que votre base de données Access est optimisée pour qu’elle fonctionne aussi bien que possible dans Access. Aller à SQL Server ne résoudra pas les problèmes graves de conception de bases de données et de requêtes. Les réparer dans Access est en fait plus facile que de le faire plus tard dans SQL Server, donc le temps et les efforts consacrés à cela sont préservés si vous augmentez la taille plus tard.

Pour vous assurer que votre base de données Microsoft Access ne présente pas de problèmes graves, utilisez notre programme Total Access Analyzer pour documenter et analyser votre base de données. Il détecte plus de 300 types d’erreurs, de suggestions de conception et de problèmes de performances qui peuvent vous aider à optimiser votre base de données Access.

Pour les bases de données Microsoft Access relativement petites, ne pas passer à SQL Server uniquement pour des raisons de performances. Il peut y avoir une diminution des performances après une augmentation de la taille. Cherchez des moyens d’optimiser les problèmes d’accès avant de faire l’investissement pour augmenter la taille. Les problèmes de performances peuvent être sans rapport avec le stockage des données.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Previous post Picha Farms ‘Pumpkin patch à Puyallup, WA
Next post Connect. Découvrir. Part.