Как и все, это зависит. В большой системе с высокими транзакциями, над которой я работаю, в настоящее время используется уведомление с SQL (DLL, загруженная в SQL Server, которая вызывается расширенным SP из-за триггеров на определенных таблицах. Затем DLL уведомляет другие приложения о том, что есть над чем работать).
Однако мы отходим от этого, потому что мы можем практически гарантировать, что будет работа, которую нужно выполнять постоянно. Поэтому, чтобы уменьшить сложность и немного ускорить процесс, приложения будут обрабатывать свою работу и немедленно опрашивать БД на предмет новой работы. Если его не будет, он попытается через небольшой промежуток времени.
Кажется, это работает быстрее и намного проще. Однако другая часть приложения, которая имеет гораздо меньший объем, не выигрывает от увеличения скорости при использовании этого метода - если только интервал опроса не очень мал, что приводит к проблемам с производительностью. Итак, мы оставляем все как есть для этой части. Поэтому хорошо, когда это уместно, но потребности у всех разные.