Nigdy nie uruchamiaj zapytań bez limitu czasu. Pojedyncze nieprawidłowe zapytanie lub skok obciążenia mogą prowadzić do zastoju lub przestoju aplikacji bez nich. Zastanówmy się, dlaczego. Rozważmy przypadek, w którym do naszej aplikacji przypadkowo wprowadzone zostaje długoterminowe zapytanie. Baza danych zazwyczaj przetwarza tylko krótkotrwałe zapytania (10 ms lub mniej), a nagle mamy nowe zapytanie, które zajmuje 1000 ms na wykonanie. Nie tylko zajmie to zasoby, ale także zwiększy liczbę jednoczesnych transakcji. Możemy osiągnąć limity połączeń, limity transakcji lub wykorzystać 100% CPU / IOPS bazy danych. Teraz rozważmy ten sam scenariusz, ale nakładamy limit czasu 250 ms na każdą transakcję (po stronie bazy danych), z logiką ponownego próbowania z wykładniczym opóźnieniem + jitter (po stronie aplikacji). Ograniczyliśmy teraz zasięg wpływu pojedynczego zapytania. Długoterminowe zapytania zostaną zakończone, a logika opóźnienia minimalizuje ryzyko tzw. „thundering herds”. Monitorując te limity czasu, możemy szybko zidentyfikować problematyczne zapytanie i cofnąć zmianę.