Ich bin neu in ArangoDB, Probleme bei der Optimierung meiner Abfragen und hoffe auf etwas Hilfe.ArangoDB langsame Abfrage
Die Abfrage, die ich unten zur Verfügung gestellt habe ein echtes Beispiel dafür ist, dass ich mit, 758,078 ms auf meiner dev Datenbank, sondern auf Inszenierung, mit einer viel größeren Datenmenge bin zu kämpfen, dauert es 531,511 s.
Ich werde auch die Größe der einzelnen Kantentabellen bereitstellen, die ich in Dev und Staging durchquere. Jede Hilfe wird wirklich geschätzt.
for doc in document
filter repo._key == "my-key"
for v, e, p in 3 any doc edge1, edge2, edge3
options {uniqueVertices: 'global', bfs: true}
filter DATE_ISO8601(p.vertices[2].date) > DATE_ISO8601("2017-09-04T00:00:01Z")
and DATE_ISO8601(p.vertices[2].date) < DATE_ISO8601("2017-09-15T23:59:59Z")
limit 1
return {
commit: p.vertices[2].hash,
date: p.vertices[2].date,
message: p.vertices[2].message,
author: p.vertices[1].email,
loc: p.vertices[3].stats.additions
}
DEV
- edge1: 2638
- Flanke2: 2560
- edge3: 386
STAGING
- edge1: 5.438.811
- Flanke2: 5.544.028
- edge3: 423.545
Hey, vielen Dank. Wie würde ich meinen Filter auf die Traversierung anwenden? Ich weiß nicht, dass ich ein Beispiel dafür gesehen habe, also bin ich mir nicht sicher, wie ich diesen Teil der Abfrage restrukturieren soll. –
Ich denke, Sie können nur Ihre Filterbedingung durch die, die ich vorgeschlagen, ersetzen. Dies funktioniert jedoch nur, wenn Ihre Datumswerte als Zahlen gespeichert sind. Sie können dann den Ausführungsplan der Abfrage über die Webschnittstelle überprüfen. Der Ausführungsplan sollte sich in dem Sinne ändern, dass im Abschnitt "Traversals" unten der Filterzustand angezeigt werden sollte. Während in der ursprünglichen Abfrage die Filterbedingung nicht im Abschnitt "Traversals" angezeigt werden sollte. – stj