3 votes

temps d'exécution d'une requête dans neo4j

Je viens de commencer à évaluer Neo4j comme alternative possible à postgres pour un entrepôt de données construit spécifiquement pour l'intégration et l'analyse de données biologiques complexes. J'ai importé quelques tables dans Neo4j et j'ai commencé à évaluer le temps d'exécution de certaines requêtes pertinentes. Je me demandais quelle était la meilleure façon de les mesurer. J'utilise l'outil neo4j-shell, mais je ne suis pas sûr que ce soit la meilleure approche. Peut-être que la mise en œuvre d'un petit client utilisant l'API Java ou le framework Traversal est meilleure ? Et comment mesurer le temps d'exécution "réel" d'une requête (pas le temps d'imprimer le résultat !!) avec neo4j-shell ? En utilisant PROFILE ? Merci !

0voto

Anomaly211 Points 673

Bonjour et bienvenue dans le monde passionnant des bases de données graphiques.

La console du navigateur Neo4J fournit une impression du temps d'exécution lorsque vous tapez chaque déclaration de chiffrement. Pour autant que je sache, il s'agit du temps d'exécution et non du temps pris pour afficher les résultats en utilisant le plugin de visualisation.

Si vous n'êtes pas satisfait de cette méthode et que vous souhaitez obtenir des résultats plus précis ou plus fiables, il existe deux options auxquelles je pense.

  1. Utilisez l'API Java pour créer une procédure stockée Java (Neo4J 3.0 et plus) ou une extension non gérée de la procédure stockée. ci-dessus) ou une extension non gérée de étendre le serveur . C'est beaucoup plus plus rapide car il n'est pas limité par le Cypher Query Planner (bien que cela ait été amélioré de manière significative avec la version 3.0).
  2. Créez un serveur API simple sur la même VM / Machine que Neo4J et et faites-lui surveiller le temps qu'il faut entre la requête, la base de données et la réponse. réponse et de vous le renvoyer. J'ai quelque chose de similaire qui enregistre les temps de demande d'API dans mon serveur NodeJS afin que je puisse optimiser les requêtes. Ce n'est pas une mauvaise option étant donné les nouvelles performances élevées. BOLT l'interface. Bien que l'option 1 soit toujours plus rapide.

0voto

Stefan Armbruster Points 12620

L'édition Enterprise de Neo4j vous permet d'activer la journalisation de toutes les requêtes que vous avez envoyées. Voir toutes les options de configuration commençant par dbms.logs.query.* de http://neo4j.com/docs/operations-manual/current/#config_dbms.logs.query.enabled .

Il suffit de modifier pour conf/neo4j.conf :

dbms.logs.query.enabled=true

Veuillez noter que pour les anciennes versions (alias 2.x) de Neo4j, les options de configuration avaient une convention de dénomination différente.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X