Answer
Triggers are powerful but can introduce hidden complexity and performance problems in large systems.
Key concerns:
- Hidden behavior: Business logic executes implicitly on DML, making the system harder to reason about. Developers may not realize why certain actions occur.
- Chained effects: Triggers can call other triggers, causing cascading side effects that are difficult to debug and test.
- Performance impact: Trigger logic runs inside the transaction. Long-running triggers increase lock durations and contention.
- Maintainability: Logic spread across triggers and procedures leads to fragmented business rules and operational risk.
For these reasons, many teams prefer stored procedures, constraints, and explicit application-level logic over heavy trigger usage, reserving triggers for focused, unavoidable use cases (e.g., auditing).