ACC2000 : Optimisation des performances client/serveur

Traductions disponibles Traductions disponibles
Numéro d'article: 208858 - Voir les produits auxquels s'applique cet article
Avancé : Nécessite une matière de programmation, l'interopérabilité et compétences multi-utilisateur.

Cet article s'applique uniquement à une base de données Microsoft Access (.mdb).

Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article répertorie des conseils pour optimiser les performances des sources de données ODBC (Open Database Connectivity) dans Microsoft Access.

Remarque : cet article part du principe que vous êtes familiarisé avec les environnements client/serveur et les architectures.

Plus d'informations

Méthodes d'accès aux données

Pour accéder aux données du serveur avec une application client/serveur, vous pouvez utiliser une ou plusieurs des méthodes suivantes :

  • Les tables liées et de vues
  • Requêtes SQL directes pour envoyer des instructions SQL directement au serveur
  • Un projet Access

Tables liées et vues

Le moyen le plus efficace pour gérer les données de serveur consiste à lier des tables et vues à partir de votre serveur. Microsoft Access stocke les informations de champs et d'index des tables liées. Cela améliore les performances lorsque vous ouvrez les tables.

Remarque : Si vous apportez des modifications à des champs ou des index sur le serveur, vous devez lier de nouveau les tables distantes dans Access.

Exécution de requêtes SQL directes

Dans de nombreuses applications, vous pouvez créer des requêtes de Microsoft Access basées sur les tables distantes et également créer les requêtes SQL directes. Requêtes SQL directes offrent les avantages suivants :
  • Microsoft Access ne se compile pas une requête SQL directe. Il envoie la requête directement au serveur ODBC. Cela accélère l'application.
  • Accès envoie la requête SQL directe au serveur exactement tel qu'il a été entré. Par conséquent, plus le traitement s'effectue sur le serveur et moins de données sont échangées via le réseau.
  • Formulaires, États et requêtes Microsoft Access peuvent reposer sur les requêtes directes à l'aide de tables ODBC liée.
  • Vous pouvez utiliser les fonctionnalités de spécifiques à SQL Server (telles que la procédures stockées et fonctions intrinsèques basé sur le serveur) n'a pas d'équivalent dans le code.
  • Mettre à jour, supprimer et ajouter action directe les requêtes sont beaucoup plus rapides que les requêtes action basées sur les tables à distance, en particulier lorsque de nombreux enregistrements sont concernés.
Les requêtes par passage de données présentent les inconvénients suivants :
  • Une requête SQL directe retourne toujours une capture instantanée ne peut pas être mis à jour. Généralement, une requête Microsoft Access renvoie une feuille de réponse dynamique qui reflète modifications effectuées les par d'autres utilisateurs et peut être mis à jour.
  • Vous devez taper les commandes directement dans la fenêtre de requête SQL directe avec la syntaxe requise par votre serveur. Vous ne pouvez pas créer des requêtes SQL directes dans la grille de création de requête.
  • Si vous avez besoin d'un paramètre avec une requête SQL directe, vous devez exécuter la requête dans le code et modifiez la propriété de la requête SQL. Pour plus d'informations et un exemple de la manière de modifier la propriété SQL, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
    232493ACC2000 : Comment faire pour simuler des paramètres dans une requête SQL directe

Demander moins de données du serveur

Demande de données des coûts de serveur de temps de traitement. Pour optimiser les performances, demander uniquement les enregistrements et les champs dont vous avez besoin.

Réduire le nombre de contrôles dépendants, tels que les zones de texte, des zones de liste déroulante, des zones de liste et des sous-formulaires. Lorsqu'un formulaire est ouvert, chacun de ces contrôles envoie une requête distincte au serveur.

Si des tables ODBC liées ont Memo ou OLE champs objet, vous pouvez définir la propriété visible des champs non et ajoutez un bouton de bascule pour affecter la propriété VisibleOui afin que les utilisateurs peuvent choisir d'afficher.

Certaines tables liées ne changent pas fréquemment. Par exemple, une table contenant les noms et les abréviations des 50 états ferait passer pas souvent. Permet d'accélérer le chargement de formulaire et de réduire la charge du serveur en stockant une copie locale de ces tables. Vous pouvez également fournir un moyen de mettre à jour la copie locale avec les données plus récentes à partir du serveur.

Optimisation des requêtes

La méthode principale pour l'optimisation des requêtes (après avoir ajouté les index appropriés sur le serveur) est de s'assurer que la transformation a lieu sur le serveur. Vous devez éviter de fonctionnalité qui n'est pas pris en charge par le serveur, comme les fonctions spécifiques à Microsoft Access ou des fonctions définies par l'utilisateur. Pour plus d'informations sur ce qui doit être traité localement, consultez le livre blanc Microsoft Jet Database Engine OBDC Connectivity (pour plus d'informations sur ce livre blanc, reportez-vous à la section «Microsoft Jet Database Engine ODBC Connectivity White Paper» plus loin dans cet article).

Pour consulter l'instruction SELECT qui est envoyée au serveur, vous pouvez définir la TraceSQLMode paramètre. Pour ce faire, procédez comme suit :
  1. Cliquez sur menu Démarrer, puis cliquez sur exécuter.
  2. Dans la boîte de dialogue Ouvrir, tapez Regedit.
  3. Développez la sous-arborescence HKEY_LOCAL_MACHINE jusqu'à ce que vous recherchez la sous-clé SOFTWARE\Microsoft\Jet\4.0\Engines.
  4. Cliquez sur les moteurs.
  5. Si la valeur TraceSQLMode n'apparaît pas dans le volet droit, cliquez sur Nouveau dans le menu Edition, puis cliquez sur Valeur DWORD.
  6. Sous nom dans le volet droit, tapez TraceSQLMode pour la nouvelle valeur.
  7. Avec la nouvelle valeur est toujours sélectionnée, cliquez sur Modifier dans le menu Edition.
  8. Sous base, sélectionnez décimal. Dans la zone données de la valeur, tapez 1, puis cliquez sur OK.
Pour plus d'informations sur le paramètre TraceSQLMode, cliquez sur aide sur Microsoft Access dans le menu Aide, tapez «TraceSQLMode» dans le Compagnon Office ou l'aide intuitive et puis cliquez sur Rechercher pour afficher la rubrique.

Paramètre TryJetAuth

TryJetAuth paramètre détermine si Microsoft Access essaie tout d'abord ouvrir une session sur votre serveur à l'aide de l'ID de connexion de Microsoft Access et du mot de passe. (Par défaut, l'ID de connexion de Microsoft Access est «admin» et le mot de passe est vide.) En cas d'échec, Microsoft Access vous invite à entrer un nom d'utilisateur et un mot de passe. Moins vous avez configuré Microsoft Access pour utiliser le même ID d'ouverture de session et un mot de passe que votre serveur ODBC, ajoutez la ligne «TryJetAuth = 0 "à la clé HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\ODBC\TryJetAuth du Registre. Cela empêche Microsoft Access d'essayant de se connecter avec l'ID incorrect. Pour ce faire, procédez comme suit :
  1. Cliquez sur Démarrer, puis cliquez sur exécuter.
  2. Dans la boîte de dialogue Ouvrir, tapez Regedit.
  3. Recherchez la sous-arborescence HKEY_LOCAL_MACHINE.
  4. Développez la sous-arborescence HKEY_LOCAL_MACHINE jusqu'à ce que vous recherchez la sous-clé suivante :
    SOFTWARE\Microsoft\Jet\4.0\ODBC\TryJetAuth
  5. Cliquez sur les moteurs.
  6. Si la valeur TryJetAuth n'est pas, cliquez sur Nouveau dans le menu Edition, puis cliquez sur Valeur DWORD.
  7. Sous nom dans le volet droit, tapez TryJetAuth pour la nouvelle valeur.
  8. Avec la nouvelle valeur est toujours sélectionnée, cliquez sur Modifier dans le menu Edition.
  9. Sous base, sélectionnez décimal. Dans la zone données de la valeur, tapez 1, puis cliquez sur OK.

Horodatages

Sur les serveurs qui les prennent en charge tels que Microsoft SQL Server, champs d'horodatage rendre les enregistrements de mise à jour plus efficace. Champs d'horodatage sont gérées par le serveur et sont mis à jour chaque fois que l'enregistrement est mis à jour.

Si vous disposez d'un champ d'horodatage, Microsoft Access a besoin pour ne vérifier que l'index unique et le champ timestamp pour savoir si l'enregistrement a été modifié depuis sa dernière récupéré à partir du serveur. Dans le cas contraire, Microsoft Access doit vérifier tous les champs dans l'enregistrement. Si vous ajoutez un champ d'horodatage à une table liée, reliez la table afin d'informer Microsoft Access du nouveau champ.

Transactions

L'utilisation transactions dans Visual Basic pour applications (VBA) lorsque vous mettez à jour ou insérez des enregistrements sur des tables liées peut améliorer les performances. Les transactions permettent le moteur de base de données Jet accumuler plusieurs mises à jour et les enregistrer comme un lot unique. Avec Microsoft SQL Server ne courtes des transactions, car ils génèrent des verrous empêcher d'autres utilisateurs de lire les données affectées par la transaction en cours. Bien que vous pouvez imbriquer des transactions avec VBA, la plupart des serveurs ne prennent pas en charge les transactions imbriquées. Microsoft Access envoie au serveur que les transactions de premier niveau.

Optimisation des jeux d'enregistrements et de code

Vous pouvez stocker tout ou partie des données contenues dans les objets Recordset de type Dynaset dans la mémoire locale en définissant les propriétés CacheSize et CacheStart.

La taille du cache peut être compris entre 5 et 1200 enregistrements. Si la taille du cache dépasse la mémoire disponible, les enregistrements excès renversez dans un fichier disque temporaire. Application de la méthode FillCache remplit le cache avec des données de serveur. Pour récupérer la mémoire cache, définissez la propriété CacheSize sur zéro.

Variables de l'objet Recordset, implémenter uniquement les fonctionnalités dont vous avez besoin. Par exemple, ajoutez l'option dbAppendOnly avec la méthode OpenRecordset si vous souhaitez ajouter de nouveaux enregistrements à un jeu d'enregistrements. Si vous n'avez pas besoin de modifier ou de la mise à jour de capacité, selon des vos jeux d'enregistrements SQL (requêtes directes). La méthode la plus rapide pour insérer et mettre à jour des enregistrements consiste à utiliser des requêtes SQL directes dans code.

Table MSysConf

Vous pouvez ensuite créer une table MSysConf sur votre serveur pour le remplissage d'arrière-plan de contrôle (fréquence à laquelle Microsoft Access lit les enregistrements à partir du serveur pendant la période d'inactivité). Avec cette table, vous pouvez définir le nombre de lignes de données qui sont extraites en une seule fois et le nombre de secondes de retard entre chaque extraction. Si vous rencontrez excessive en lecture-verrouillage sur le serveur, vous pouvez régler les paramètres de table pour augmenter la vitesse de remplissage d'arrière-plan. Si trop de trafic réseau est généré par remplissage d'arrière-plan, vous pouvez régler les paramètres pour ralentir la.

Livre blanc de la connectivité Microsoft Jet Database Engine ODBC

Une source importante pour plus d'informations est le livre blanc «Jet Database Engine OBDC Connectivity». Ce document a été écrite pour Jet 3.0 ; Toutefois, ces informations s'appliquent toujours à Jet 4.0. Ce document aborde le moteur de base de données Microsoft Jet 3.0 et comment il utilise ODBC. Le livre blanc peut être téléchargé à partir du site Web Microsoft suivant :
http://download.microsoft.com/download/access95/whitep5/1/W98/EN-US/Rjwpv3.exe

Un projet Access

Un projet Access utilise OLEDB pour lier à Microsoft SQL Server 6.5 ou 7.0. Si toutes les tables dans votre base de données Access sont des tables liées à SQL Server, pour améliorer les performances, vous pouvez créer un projet Access. Toutefois, si votre base de données contient toutes les tables Access, cette option n'est pas possible.

Propriétés

Numéro d'article: 208858 - Dernière mise à jour: jeudi 29 mars 2007 - Version: 3.3
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Access 2000 Standard Edition
Mots-clés : 
kbmt kbdownload kbhowto kbusage KB208858 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 208858
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com