Vous avez un mélange de questions ici. Pour voir quelles requêtes sont exécutées et combien de temps chacune d'entre elles prend, vous devrez soit modifier sqlite3.dll si une application est liée à cette dernière, soit, s'il s'agit de votre propre application, l'écrire plus facilement dans votre code (nous le faisons et enregistrons toutes les requêtes, transactions, durées, etc.)
Pour l'analyse des requêtes individuelles, vous pouvez utiliser EXPLAIN
. Il ne vous indiquera pas la chronologie des étapes individuelles d'une requête, mais il vous dira comment la requête a été exécutée.
http://www.sqlite.org/lang_explain.html
Une instruction SQL peut être précédée du mot clé "EXPLAIN" ou de l'expression "EXPLAIN QUERY PLAN". L'une ou l'autre de ces modifications fait que l'instruction SQL se comporte comme une requête et renvoie des informations sur la façon dont l'instruction SQL aurait fonctionné si le mot-clé ou la phrase EXPLAIN avait été omis.
Lorsque le mot clé EXPLAIN apparaît seul, l'instruction se comporte comme une requête qui renvoie la séquence d'instructions de la machine virtuelle qu'elle aurait utilisée pour exécuter la commande si le mot clé EXPLAIN n'avait pas été présent. Lorsque la phrase EXPLAIN QUERY PLAN apparaît, l'instruction renvoie des informations de haut niveau sur les indices qui auraient été utilisés.
La sortie de EXPLAIN et EXPLAIN QUERY PLAN est destinée à l'analyse interactive et au dépannage uniquement. Les détails du format de sortie sont susceptibles de changer d'une version de SQLite à l'autre. Les applications ne devraient pas utiliser EXPLAIN ou EXPLAIN QUERY PLAN car leur comportement exact est non documenté, non spécifié et variable.