Определенно используйте асинхронный метод. Если вы работаете на платформе Microsoft SQL, проверьте комбинацию
1) Отслеживание изменений доступно Версия SQL> 2008: http://msdn.microsoft.com/en-us/library/cc280462.aspx
и
2) SQL Service Broker, с помощью которого вы можете регистрировать события. (1. фактически использует 2. под капотом IIRC): http://msdn.microsoft.com/en-us/library/ms345108(SQL.90).aspx
Если вам нужно вернуться к триггерам, определенно удерживайте воздействие триггера на низком уровне. Например, создайте свой собственный журнал изменений и обработайте его откуда-то еще. Не пишите обновление и узнайте, кто к информации в том же триггере, что и само изменение. Это сильно замедлит ваши запросы.
Существуют также варианты, зависящие от того, какую технологию уровня данных вы используете: NHibernate имеет концепцию перехватчиков, то же самое на стороне Enterprise Framework. Но они не запускаются в базе данных, что имеет свои преимущества и недостатки.
НТН
Alex