Я ищу для реализации некоторых «асинхронных триггеров» в базе данных Azure SQL. Был this other question, который задал этот же вопрос с почти такими же потребностями, как мои, но для SQL Server 2005/2008. Ответ заключался в использовании Service Broker. И это отличный ответ, который отлично удовлетворит мои потребности, если он будет поддерживаться в Azure SQL Databases, но это не так.Асинхронные триггеры в базе данных Azure SQL
Моя особая потребность в том, что у нас имеется довольно небольшой набор входов, выбранных и сохраненных пользователем. Пара этих входных данных представляет собой идентификацию определенных алгоритмов и отдельных данных совокупного уровня в одну запись одной таблицы. После сохранения мы хотим, чтобы триггер выполнял выбранные алгоритмы и обрабатывал данные на уровне совокупности, чтобы разбить его на десятки тысяч записей в несколько разных таблиц. Это 2-8 секунд для обработки, в зависимости от алгоритмов. (Я уверен, что я мог бы оптимизировать это немного больше, но я не думаю, что могу получить это быстрее, чем 2-5 секунд, только из-за логики, которая должна быть встроена в него.)
Меня не интересует установка SQL Server внутри виртуальной машины в Azure - я специально хочу использовать базу данных Azure SQL по многим причинам, я не собираюсь входить в этот пост.
Так что мой вопрос: Есть ли хороший/очевидный способ сделать это в базе данных Azure SQL? Я не могу придумать. Наиболее очевидные варианты, которые я могу видеть, либо не в Azure SQL базы данных или не-стартеры:
- Используйте реальные триггеры и не асинхронные триггеры, но это проблема, потому что это занимает много секунд эти триггеры для обработки, как он сжимает числа на основе сохраненных входов.
- Используйте систему массового обслуживания бедных людей в базе данных (т. Е. Новую таблицу, которая рассматривается как очередь и вставляет записи в нее в виде сообщений), и опрос, полученный от внешнего/внешнего источника (функции или веб-задания или что-то еще). Я бы очень хотел избежать этого из-за дополнительной сложности и усилий. Но, честно говоря, это то, к чему я склоняюсь, если я не могу получить лучшую идею от умных людей здесь!
Спасибо за помощь!
(Я отправляю это здесь, а не на DBA.StackExchange, потому что это больше архитектурной проблемы, чем проблема с базой данных. Вы можете не соглашаться, но потому, что мой текущий лучший вариант предполагает развитие без базы данных и выше вопрос я ссылка, что был почти идеальным для меня было также находится здесь, я решил опубликовать здесь, а там.)
https://azure.microsoft.com/en-us/blog/azure-automation-your-sql-agent-in-the-cloud/ – gotqn