私はいくつかの "非同期トリガ"をAzure SQLデータベースに実装しようとしています。 this other questionがありましたが、SQL Server 2005/2008の場合とほぼ同じニーズでこの同じ質問をしました。答えはService Brokerを使用することでした。 Azure SQLデータベースでサポートされていれば、私のニーズに完全に対応できる素晴らしい答えですが、そうではありません。Azure SQLデータベースの非同期トリガー
私が特に必要とするのは、ユーザーが選択して保存した入力のセットがかなり少ないことです。これらの入力のいくつかは、特定のアルゴリズムといくつかの集約レベルのデータをすべて単一のテーブルの単一のレコードに識別します。保存したら、選択したアルゴリズムを実行し、集約レベルのデータを処理して数万のレコードに分解し、いくつかの異なるテーブルに入れるようにするトリガーが必要です。これはアルゴリズムに応じて2〜8秒で処理されます。 (私はこれをもう少し最適化できると確信していますが、それに組み込まれなければならないロジックのために2〜5秒より速くなるとは思いません)
私は興味がありませんAzureのVM内にSQL Serverをインストールする - 私は特にAzure SQLデータベースを、この記事では取り上げない理由で引き続き使用したいと考えています。
私の質問は:Azure SQLデータベースだけでこれを行う良い/明らかな方法はありますか?私は1つ考えることができません。私が見ることができる最も明白なオプションは、AzureのSQLデータベース内のいずれかではないか、非スターターです:
- 利用本当のトリガーと非同期ないトリガ、それはとして処理するために、これらのトリガのために何秒かかりますので、それが問題ですそれは記憶された入力に基づいて数字を切り詰める。
- データベース内の貧しい人のキューイングシステム(キューとして扱われ、メッセージとしてレコードをメッセージとして挿入する新しいテーブル)を使用して、外部/外部ソース(機能やWebジョブなど)からポーリングします。複雑さと労力が増えたので、これを避けたいと思っています。しかし、率直に言って、これは私がスマートな人々からより良いアイデアを得ることができないなら、私がここに傾いているのです!
助けてくれてありがとう!
これは、データベースの問題よりも、建築問題の詳細ですので、(私はDBA.StackExchangeに、ここではなく、これを掲示しています。あなたは同意しないかもしれないが、私の現在の最良のオプションは、非データベースの開発と含むので、質問の上に、私はそれは私もここに位置していたため、私はここではなく、そこに掲示することにしたほぼ完璧だった参照。)
https://azure.microsoft.com/en-us/blog/azure-automation-your-sql-agent-in-the-cloud/ – gotqn