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 !
Réponses
Trop de publicités?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.
- 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).
- 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.
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.