Jira Cloud Dokumentation

JQL-Optimierungs-empfehlungen



Nicht alle JQL-Abfragen sind gleich. JQL verwendet eine strenge Logik, die genau das tut, was du ihr sagst, unabhängig davon, ob es der effizienteste Weg ist oder nicht. Diese Ineffizienzen können sich summieren und zu Leistungsvorgängen in Boards, Plänen oder Projekten führen.

Auf dieser Seite stellen wir dir einige allgemeine Richtlinien für das Schreiben einer effizienten JQL-Abfrage vor.


Schränke den Umfang deiner Anfrage ein

Wenn du deine JQL-Abfrage erstellst, gibst du an, wo Jira nach Vorgängen suchen soll, indem du bestimmte Projekte oder Boards ein- oder ausschließt. Wenn eine Abfrage weniger Vorgänge durchsuchen muss, werden die Ergebnisse schneller geladen.


Beispiel


Angenommen, du möchtest alle dir zugewiesenen Arbeiten mit einem JQL-Filter anzeigen. Du arbeitest jedoch nur an zwei Projekten in deiner gesamten Organisation.

Dann funktioniert folgende Abfrage:


assignee is currentUser()


Aber diese ist besser:


project in (Käse, Project Kanban) and assignee is currentUser()


Und warum?


Die erste Abfrage durchsucht alle Vorgänge in deiner Site, um die zu finden, die dir zugeordnet sind. Die zweite Abfrage ist mehr auf deine Projekte ausgerichtet. Wenn deine Site 10.000 Vorgänge hat, kann Jira die 500 Vorgänge in diesen Projekten betrachten und die restlichen 9.500 ignorieren. Je weniger Vorgänge sortiert werden müssen, desto schneller kann die Abfrage ausgeführt werden, auch wenn die Ergebnisse die gleichen sind.

Du kannst auch andere Felder verwenden, um den Umfang deiner JQL-Abfrage einzugrenzen, z. B. das Datum, den Projekttyp oder die letzte Ansicht.


Verwende OR für Hauptklauseln und AND für Nebenklauseln

Aufgrund der Art und Weise, wie Jira Abfragen interpretiert, kann eine scheinbar logische Zeichenfolge in mehrere redundante Abfragen zerlegt werden, deren Ausführung länger dauern kann. Eine häufige Ursache für redundante Suchen ist die Verwendung von AND in Hauptklauseln. Wir empfehlen, dass AND vor allem in Unterklauseln verwendet wird und OR für Hauptklauseln reserviert ist. Oder einfacher ausgedrückt: Wir empfehlen, dass deine OR-Klauseln außerhalb der Klammern stehen und deine AND-Klauseln innerhalb.


Beispiel


Angenommen, du verwendest eine JQL-Abfrage, um nur Vorgänge anzuzeigen, die im Projekt PMO enthalten oder der zugewiesenen Person A zugeordnet sind, sowie solche aus dem Projekt TIS oder der zugewiesenen Person B.

Folgende Abfrage funktioniert:


(project = TIS OR assignee = A) AND (project = PMO OR assignee = B)


Aber diese ist besser:


project in (TIS, PMO) OR assignee in (A, B)


Und warum?


Wenn JQL eine AND-Klausel enthält, gibt Jira Software nur Vorgänge zurück, die mit beiden Unterklauseln übereinstimmen, nicht mit entweder/oder, und würde die erste Abfrage so interpretieren:


  • in Project TIS AND in Project PMO
  • assigned to Assignee B AND in Project TIS
  • assigned to Assignee A AND in Project PMO
  • assigned to Assignee A AND assigned to Assignee B



Nicht nur, dass die beiden letztgenannten Suchanfragen keine Ergebnisse liefern, Jira führt die Suchanfragen auch noch aus. Diese unnötigen Suchen können die Leistung deiner JQL-Abfrage verlangsamen. Die zweite Abfrage schließt die überflüssigen Suchen aus, was bei größeren Datensätzen erhebliche Auswirkungen auf die Laufzeit haben kann.


Vermeide lästige Felder und Funktionen

Einige Felder sind dafür bekannt, langsam zu sein, weil sie so kompliziert sind. Das label-Feld zum Beispiel muss auf mehrere Datensätze verweisen, was seine Verwendung in der Suche kompliziert macht. Mit dem Feld IssueKey lassen sich jedoch dieselben Ergebnisse schneller erzielen.

Auch bestimmte Funktionen können problematisch sein. Die Funktion portfolioChildIssuesOf zum Beispiel erfordert mehrere Rekursionen durch die Datenbank, um sie zu verwenden. Zurzeit gibt es noch keine empfohlene Lösung.


Baue deine JQL-Abfrage eine nach der anderen auf


Die beiden hier genannten Felder und Funktionen sind keineswegs eine vollständige Liste. Du kannst herausfinden, welche Felder und Funktionen in deiner Abfrage zu Verzögerungen führen, indem du sie Klausel für Klausel aufbaust, anstatt alles auf einmal zu schreiben. Indem du nach und nach Funktionen zu deiner Klausel hinzufügst und dann deine Suche durchführst, kannst du herausfinden, welche Felder am langsamsten sind, und diese Felder entschärfen oder vermeiden.





Zurück zum Hauptmenü   Nächstes Thema  







Confluence

Diese Seite wurde zuletzt am 08.02.2024 geändert.