Powiedzmy, że musisz przekazywać dane do systemu innej firmy w czasie zbliżonym do rzeczywistego. Twój stół zawiera 950 gigabajtów danych, więc jest zbyt duży, aby po prostu zepchnąć cały stół do aplikacji innej firmy.
Zamiast tego kumulujesz zmiany w kolejce. Niektóre programy zewnętrzne będą następnie okresowo wypychać małe partie danych w kolejce.
System ma ponad 2000 procedur przechowywanych. Wiesz także, że w kodzie źródłowym istnieje mnóstwo sql. Aby upewnić się, że kolejka jest poprawnie zapełniona, musisz przeszukać wszystkie zapisane procesy i kod i mieć nadzieję, że niczego nie przeoczysz.
Zamiast tego możesz umieścić wyzwalacz na stole, aby aktualizować kolejkę. Gwarantujemy, że niczego nie przegapisz. Jedna centralna lokalizacja. Kara za wydajność? Nie do końca, ponieważ nie można uniknąć trafienia zapełniania kolejki, czy to przez wyzwalacz, czy na zewnątrz.
W tym scenariuszu powiedziałbym, że niestosowanie wyzwalacza jest złym wyborem projektu. Jeśli później chcesz użyć nowej metody wypychania danych (powiedzmy, że kolejka nie działa), a interfejs zmienia się, jesteś chroniony, jeśli użyjesz wyzwalacza. Wyzwalacze są często najlepszym wyborem. Nie słuchaj dogmatycznych fanboyów anty-spustowych.