Es kann schon möglichkeiten geben, wieso man einen Job Hart abbrechen möchte. wir haben z. b. einen monatlichen Löschjob, der, wenn wir ihn lassen würden, auch mal 72 Stunden laufen würde... - nur ist es für uns kein Problem, ihn auch zwischendurch abzubrechen und dann bei der nächsten Löschung dort fort zu fahren wo wir davor waren. ( einmal im Jahr läuft der dann komplett durch, sodass wir wieder ein bereinigtes System haben )
Wenn ein Job läuft, kann der schon mal, je nachdem was er machen soll, ein System so doll beanspruchen, dass man keine andere Möglichkeit hat, als ihn irgendwann zu killen.
Wenn z. b. unser löschjob läuft, kann niemand mehr das System benutzen, weil die zu löschenden Daten so zentral sind, dass man sonst nichts mehr machen kann.
Man muss halt nur den Report so schreiben, dass es kein Problem ist, den auch abzubrechen, ohne dass man dann inkosistente Daten hat.
Nichtsdestotrotz sollte man, in diesem Fall, schauen warum er zu so einem langläufer wird - es gibt da ein paar, aber nicht unendlich viele, Möglichkeiten.
Alle schleifen überprüfen ( sind geschachtelte schleifen dabei? )
Alle Selects überprüfen ( Select - Endselect unbedingt vermeiden - ist zwar praktisch für die Entwicklung, für die Laufzeit aber unglaublich schlecht )
Alle Selects mit for all entries überprüfen! ( wenn die tabelle leer ist, werden Alle einträge der DB-Tabelle gelesen und die where Bedingungen, natürlich, ignoriert. )
Viele Commits / Rollbacks in einem Report?
Tiefe Tabellen möglichst vermeiden ( heißt, dass tabellen in einer Tabelle sind )
Exceptions können auch noch zur laufzeit beitragen... heißt wenn ihr 100.000 Exceptions werft ( und ja, ich habe schon gesehen wie für ein Objekt Exception Ketten angelegt worden sind... was kein Problem ansich ist, bloß wenn man dann diese Ketten für 30.000 einträge macht wird die Laufzeit unerträglich... )
Und so weiter.
Gibt einiges was bei der Performance beachtet werden sollte und hier eventuell eine Rolle spielt.
Und auch wenn es Sinn macht Jobs abzubrechen - zumindest in einigen Fällen - sollte man, speziell in deinem Fall, erstmal schauen ob man das Problem irgendwie beheben kann...