2012-06-06 3 views
16

Y at-il une fonction intégrée permettant d'activer le journal des requêtes dans SQLite.Activer la journalisation des requêtes dans SQLite 3

Je connais l'API Trace, mais je veux savoir s'il existe une fonction prédéfinie pour celle-ci.

+0

Copie possible de [enregistrement de requête SQL pour SQLite?] (Https://stackoverflow.com/questions/1607368/sql-query-logging-for-sqlite) – user4157124

Répondre

8

Question intéressante. Je suis venu ici intriguée et je me demandais pourquoi je ne ai jamais demandé moi-même ...

One:

Apparemment, certaines bibliothèques ont-wrapper quelque chose comme ça intégré. Mais pour trouver une bibliothèque de wrapper, vous devrez probablement d'abord identifier la langue cible. Perl DBI? Python? C++?

Deux:

je serais pas (en aucune façon) recommande ce qui suit pour une solution « qualité de la production », mais si vous expérimentez principalement et/ou le débogage, vous pouvez essayer d'examiner le journal de rollback juste avant la fin de chaque transaction. See here about the rollback journal: http://www.sqlite.org/tempfiles.html Comment vous détecteriez «la fin de chaque transaction» serait à votre code et/ou les points d'arrêt dans votre débogueur.

Je dois souligner à nouveau: ce que je viens de mentionner ci-dessus serait un hack-around total, et je me sens sale même en l'ayant mentionné.

Trois:

Vous pouvez demander au (très actif et gracieux) sqlite mailing list, mais ils ne voulaient probablement remettre l'accent sur sqlite3_trace.

... autre chose au hasard:

Sur un peu (à peine?) Note liée, lorsque vous démarrez une session invite de commande » ./sqlite3' , vous pouvez taper:

.explain 

qui permet une sortie verbeuse intéressante et instructive pour chaque requête exécutée à l'invite.

Plus d'info Je viens de découvrir:

One of the flags that can be passed to 'sqlite3_config()' is SQLITE_CONFIG_LOG. C'est une autre façon (en plus de l'API trace) pour définir un rappel et recevoir des informations d'état de la bibliothèque sqlite périodiquement. Je pense que c'est principalement pour les messages du journal des erreurs.

+7

Peut-être pouvez-vous commencer la réponse à cette question par "non ", Il pourrait être un peu trompeur ici en regardant la question de l'OP – Daan

Questions connexes