1

StreamInsight 2.1 をインストールしました。これを有効にして Server.Create() を実行し、WCF エンドポイントを公開して、Event Flow Debugger を使用して接続することができました。偽のイベント ソースを作成する例をたくさん見つけました。

私が可能だと思うもの、つまり SQL 2012 データベースに対するスタンディング クエリを作成する方法を知りたいです。RDB に接続するためのサンプル コードは見つかりませんでした。「これは単なる表示用であり、実際には RDB に接続する可能性があります」というステートメントだけです。

LINQ-to-SQL のみを使用できますか? エンティティ フレームワーク 4? 平易な ADO.NET? いくつかの MS SQL 固有のプロトコルですか?

私を本当に混乱させているのは、これらのスタンディング クエリがどのように機能するかということだと思います。最近、Microsoft が特定の独立した SKU (StreamInsight) だけがアクセスできる SQL Server の機能を公開しているのは、私には奇妙に思えます。したがって、次の 2 つのいずれかである必要があります。

SQL はクエリの永続性を認識していますか、または StreamInsight は LINQ ステートメントを変更して効率的にポーリングします (AND @LastExecution <= InsertedOn適切なインデックスを追加するなど)。

SQL がそれを特別な種類のクエリとして認識している場合、StreamInsight はそのようなスタンディング クエリを作成するためにどのメカニズムを使用しますか? StreamInsight Services などを使わずにプログラマーが利用できるものですか?

4

4 に答える 4

1

あなたが言及したスタンディング クエリは、SQL Server 自体ではなく、StreamInsight エンジン内で実行される LINQ を使用して記述されたものです。StreamInsight を使用すると、私たち開発者は、データの入出力を行うアダプター/ソース/シンク コードを作成する必要があります。

LINQ-to-SQL のみを使用できますか? エンティティ フレームワーク 4? 平易な ADO.NET? いくつかの MS SQL 固有のプロトコルですか?

はい。私は以前にこのコードを書いたことがありますが、単純な ADO.NET だけでうまくいきました。私たちのニーズは、LINQ-to-SQL や Entity Framework よりもはるかに柔軟でした。

クエリを実行しているテーブルのスキーマを制御できますか? その場合は、テーブル内のデータが変更されたときに更新される LastUpdated 日時列を追加することをお勧めします。そうすれば、テーブル全体を返さずに変更のみをプルバックするような方法でクエリを作成できます。アダプター/ソースには、SQL ステートメントを定期的に実行する何らかのタイマーが必要です。また、最後に実行された日時を維持して、それを SQL ステートメントにプラグインできるようにする必要があります。

于 2012-12-30T16:19:18.960 に答える
0

私はこのソリューションを試したことはありませんが、SQL Server に Service Broker または SQL クエリ通知を実装して、データの変更時にアプリケーションにメッセージを送信し、Streaminsight を使用してこの変更された状態を処理および応答することが可能であるように思われます。 .

これにより、「スタンディングクエリ」の効果が得られ、ポーリングの(潜在的に無駄な)オーバーヘッドが回避されると思います。

于 2013-06-25T00:17:16.717 に答える
-3

可能だと思うものを作成する方法を知りたい: SQL 2012 データベースに対するスタンディング クエリ

さあ、いくぞ。ありえない。限目。なぜそれが可能だと思いますか?ポーリングする必要があります。最善の方法は、メッセージ キューの待機中のポーリングですが、いいえ、スタンディング クエリは不可能です。残念な。

それが可能であるという面白いアイデアはどこから得たのですか?

于 2012-12-30T14:35:34.727 に答える