Est-il possible de surveiller et de consigner réel les requêtes formulées à l'encontre d'un Accès MDB?
Est-il possible de surveiller ce qui se passe à l'Access MDB (ie. ce que les requêtes SQL sont exécutées contre elle), de la même manière que vous le feriez utiliser le générateur de profils SQL pour SQL Server?
J'ai besoin de journaux de réels requêtes étant appelé.
Ce que les technologies d'accès (DAO, OLEDB, ODBC,...) êtes-vous à l'aide de/en mesure d'utiliser à la requête de la db?
DAO et OLEDB. Mais j'ai besoin de log de requêtes effectuées par le code compilé.
Je ne crois pas qu'il existe une réponse à votre question dans ces circonstances. Pourquoi voulez-vous à tout surveiller? Avez-vous envisagé d'écrire un wrapper de la sous-routine à exécuter tous vos SQL et ont-il écrire dans le fichier journal?
J'ai compilé application à un endroit et j'ai besoin de surveiller ce que SQL est tentée.
Et ma deuxième question? Vous pouvez écrire une fonction wrapper pour l'exécution de votre SQL DML et enregistrer ces dans un fichier journal. De même, pour les sélections en cours d'exécution dans le code. Pour recordsources de formulaires, les rapports, vous devez écrire dans le journal lorsque les formulaires et les rapports sont ouverts, et lorsqu'un formulaire est réinterrogée/filtré (les rapports peuvent être filtrés en A2007, ainsi vous auriez besoin d'utiliser le filtre d'événement il y, trop). Mais encore une fois, je pourquoi avez-vous besoin de surveiller les instructions SQL? Êtes-vous essayer de résoudre un problème de performance?
DAO et OLEDB. Mais j'ai besoin de log de requêtes effectuées par le code compilé.
Je ne crois pas qu'il existe une réponse à votre question dans ces circonstances. Pourquoi voulez-vous à tout surveiller? Avez-vous envisagé d'écrire un wrapper de la sous-routine à exécuter tous vos SQL et ont-il écrire dans le fichier journal?
J'ai compilé application à un endroit et j'ai besoin de surveiller ce que SQL est tentée.
Et ma deuxième question? Vous pouvez écrire une fonction wrapper pour l'exécution de votre SQL DML et enregistrer ces dans un fichier journal. De même, pour les sélections en cours d'exécution dans le code. Pour recordsources de formulaires, les rapports, vous devez écrire dans le journal lorsque les formulaires et les rapports sont ouverts, et lorsqu'un formulaire est réinterrogée/filtré (les rapports peuvent être filtrés en A2007, ainsi vous auriez besoin d'utiliser le filtre d'événement il y, trop). Mais encore une fois, je pourquoi avez-vous besoin de surveiller les instructions SQL? Êtes-vous essayer de résoudre un problème de performance?
OriginalL'auteur CJ7 | 2010-04-29
Vous devez vous connecter pour publier un commentaire.
La réponse dépendent de la technologie utilisée par le client qui utilisent MDB. Il y a différents paramètres de suivi que vous pouvez configurer dans HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\ODBC http://office.microsoft.com/en-us/access/HP010321641033.aspx. Si vous utilisez OLEDB pour access MDB à partir de SQL Server, vous pouvez utiliser la commande DBCC TRACEON (voir http://msdn.microsoft.com/en-us/library/ms187329.aspx). Je peux continuer, mais avant tout vous devez définir exactement l'interface que vous utilisez pour accéder à MDB.
MDB est un fichier sans les composants actifs, de sorte que le suivi peut rend pas MDB lui-même, mais l'interface de base seulement.
Mis à JOUR: Parce que l'utilisation de DAO (Moteur à réaction) et le fournisseur OLE DB à partir de VB, je vous recommande de créer JETSHOWPLAN regisry touche avec le "ON" de la valeur sous HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\JET\4.0\Engines\Debug (Débogage sous-clé que vous avez à créer). Cette clé est décrit par exemple dans https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5064388.html, http://msdn.microsoft.com/en-us/library/aa188211%28office.10%29.aspx et correspond à http://support.microsoft.com/kb/252883/en permettent de traces de OLE DB requêtes. Si cette sortie sera pas suffisant pour vous, vous pouvez en outre utiliser TraceSQLMode et TraceODBCAPI de HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\ODBC. Dans ma pratique JETSHOWPLAN donne une information parfaite pour moi. Voir aussi le plan d'exécution féliciter.
Mise à JOUR 2: Pour une version plus récente de l'Accès (comme Access 2007) utiliser la clé comme
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines
. L'outil ShowplanCapturer (voir http://www.mosstools.de/index.php?option=com_content&view=article&id=54&Item%20%20id=57, à télécharger http://www.mosstools.de/download/showplan_v9.zip également en anglais) peut être également utile pour vous.Je asing OLEDB pour accéder à l' .mdb .NET, mais SQL Server n'est pas en cause.
Correspond à support.microsoft.com/kb/252883/en OLE DB prend en charge JETSHOWPLAN paramètre, car cette mise en œuvre utilisé JET (DAO) pour access MDB. Il peut être modifié dans la prochaine version de fournisseur OLE DB. Pour être sûr que vous effectuez le réglage dans la base de registre à la bonne place, je vous recommande de trace accès OLE DB à l'égard de Moniteur de Processus (voir la section technet.microsoft.com/en-us/sysinternals/bb896645.aspx). Dans la trace de protocole de contrôle des Processus de recherche pour le plan d'exécution de la chaîne dans la trace de l'accès aux registres. Si OLE DB ne pas essayer de lire showplan les réglages dans la base de registre à partir d'autres endroit, vous verrez.
+1 pour nous dire il y a une version en anglais. Me fait me demander comment beaucoup d'outils sont là, mais écrit en allemand.
OriginalL'auteur Oleg
Gardez à l'esprit que le fichier sur votre disque dur est tout simplement un fichier windows. Donc, il y a une grande différence entre un serveur de base de système et celui d'un simple fichier texte ou fichier powerpoint, ou dans ce cas un fichier mdb simplement assis sur le disque.
Toutefois, vous pouvez obtenir le moteur jet d'afficher sa requête optimizeing via showplan.
Comment faire ce qui est expliqué ici:
http://www.databasejournal.com/features/msaccess/article.php/3658041/Queries-On-Steroids--Part-IV.htm
L'article ci-dessus montre également comment accéder au jet de lecture du disque statistique, que je trouve aussi très utile pour l'optimisation des choses.
N'oubliez pas d'éteindre le moteur de données de journalisation système lorsque vous ne l'utilisez pas comme il crée d'énormes fichiers journaux...
Le plan d'exécution ne donne pas un journal des requêtes (mon désolé si c'est trompeur). Afficher le plan est journal les plans de requête généré pour chaque requête et c'est ce que vous avez besoin pour l'optimisation des performances. Autant que je sache, il n'y aucun enregistrement disponible pour chaque requête. Rappelez-vous, vous pouvez utiliser le modèle d'objet dao pour reterive de données sans sql. De sorte que seules les plans utilisés pour récupérer les données sont enregistrées et non pas le sql. Je suppose que pas de sql est enregistré depuis vous pas limitée à l'utilisation de sql pour s'emparer des données. Comme mentionné JET n'est pas un service, mais uniquement un fichier de bibliothèque de processus, de code, de toute façon.
OriginalL'auteur Albert D. Kallal
Si vous avez accès via ODBC, vous pouvez activer la connexion ODBC. Il va ralentir les choses un lot, cependant. Et il ne fonctionnera pas pour toutes les autres données de l'interface.
Une autre pensée est à l'aide de Jet/ACE en tant que serveur lié dans SQL Server, puis à l'aide du générateur de profils SQL. Mais que va vous dire le SQL de SQL Server traités, pas que Jet/ACE traitées. Il peut être suffisant pour vos besoins, mais je ne pense pas que ce serait un bon diagnostic pour Jet/ACE.
EDIT:
Dans un commentaire, l'affiche originale a fourni cette information cruciale:
Dans ce cas, je pense que vous pourriez faire ceci:
renommer le MDB d'origine à quelque chose d'autre.
utiliser un Serveur lié SQL server pour se connecter à la renommée de fichier MDB.
créer un nouveau MDB avec le nom de la MDB d'origine et le lien vers le Serveur SQL avec ODBC.
Le résultat sera un fichier MDB qui a les mêmes tables en elle comme l'original, mais ils ne sont pas locaux, mais les liens vers le Serveur SQL. Dans ce cas, tous les accès sont passer par le Serveur SQL et peuvent être visualisés avec le générateur de profils SQL.
Je n'ai pas la moindre idée de ce que cela ferait à la performance, ou si elle allait se briser tout de l'extraction de données dans l'application d'origine. Si l'application utilise le tableau-type des jeux d'enregistrements ou de CHERCHER, alors, oui, il va se casser. Mais c'est la seule façon que je peux voir pour obtenir de l'enregistrement.
Il ne devrait pas être surprenant qu'il n'y a pas de connexion pour Jet/ACE, étant donné qu'il n'existe pas de processus de serveur de gestion de l'accès à la banque de données.
Je ne sais pas qu'il n'existe aucun enregistrement disponible avec OLEDB. Si vous trouvez qu'il est, s'il vous plaît poster de retour à ce sujet.
OriginalL'auteur David-W-Fenton
vous pouvez écrire votre propre générateur de profils, basée sur une "transaction" de l'objet qui permettra de centraliser toutes les instructions envoyées à la base de données, vous Vous retrouverez dans un endroit avec une "transaction.exécuter", et une table de transactions dans votre accès db. Ce tableau peut ensuite être utilisé pour recueillir de l'opération dans les instructions, l'heure de début, heure de fin, l'utilisateur de l'envoi de l'instruction, etc.
Je n'ai pas d'avis que l'objectif était d'utiliser un pare-balles de tous les temps tremblement de terre-conscient de la base de données du moniteur. J'ai enseigné nous venons de parler et le meilleur moyen de suivre ce qui se passe à un standard de fichier mdb, la mise à jour de la norme les utilisateurs grâce à une interface utilisateur standard, avec un standard de développement d'essayer de recueillir certaines données afin d'améliorer son travail ...
OriginalL'auteur Philippe Grondier
Je vous suggère de migration les tables de SQL Server. Il est un outil de le groupe de SQL Server qui est mieux que l'Assistant de Migration qui est inclus avec l'Accès.
SQL Server Migration Assistant d'Accès (SSMA d'Accès)
Voir aussi mon Aléatoire Pensées sur SQL Server Migration à partir de Microsoft Access Conseils page
David, pourquoi pas? Certes, vous pouvez le journal des requêtes dans SQL Server.
Vous semblez confondre la question du problème. L'enregistrement n'est pas le problème, la journalisation est seulement un mécanisme possible pour la résolution d'un problème qui demeure sans réponse.
Cela pourrait être utile dans le cas où les requêtes Access traduire à travers le bien et l'interface de l'application reste inchangé. La modification de la compilation de l'application chaîne de connexion à utiliser SQL Server temporairement et de l'exécution de certaines traces pourrait être une bonne approche. Je comprends le problème de discerner ce que l'application est compilée en train de faire.
Je me demande si vous pourriez créer un serveur lié dans SQL Server à votre retour en fin de fichier de données, puis de passer vos tables liées à SQL Server. Ce serait vous obtenir le même enregistrement comme vous obtiendriez avec la migration, mais ne nécessite pas que vous avez réellement pris la peine de migrer.
OriginalL'auteur Tony Toews