62173


SQL Server の機能にクエリ通知というものがあります。  
この機能について2点気になることがあります。

[Q1]  
クエリ通知は2020年現在において既に枯れたレガシー技術なのでしょうか？  
現代においてデータベースの変更を受けて駆動させる手法としては有効ではないのでしょうか？

[Q2]  
クエリ通知の機能を C# で利用するために必要な SqlDependency クラスは .NET Coreにはない様ですが、.NET Core
で実装可能な類似の技術はありますでしょうか？

よろしくお願いします。


CC BY-SA 4.0
2020-01-11T14:22:04.830
62168
2020-01-11T20:49:43.587
37413
question
c# .net sql-server
SQL Server のクエリ通知について


> [Q1] 枯れたレガシー技術なのでしょうか？

枯れた が何を意味するか微妙ですが、

[Microsoft SQL Server Service Broker](https://docs.microsoft.com/ja-
jp/sql/database-engine/configure-windows/sql-server-service-broker?view=sql-
server-ver15) の 機能を利用した仕組みで、 SQL Server 2008 頃から存在するので十分枯れていると思います。

レガシーを 悪い意味で 古臭いダサいと取るか、安定していると取るかで回答が分かれますが  
正しく要件と照らし合わせて設計すれば便利な機能だと思います。

[通知の計画](https://docs.microsoft.com/ja-jp/previous-versions/sql/sql-
server-2008-r2/ms187528\(v=sql.105\)?redirectedfrom=MSDN)
にも書いてある通り、ミリ秒単位の高速な応答は期待できないので  
カタログの一覧が更新されたことを通知する用途なら 有効に利用できますが、  
更新直後の値をリアルタイムで取得する用途では利用できません。

> [Q2] SqlDependency クラスは .NET Coreにはない

.NET Core 2.1 以降であれば
[System.Data.SqlClient](https://www.nuget.org/packages/System.Data.SqlClient/)
パッケージをインストールすれば利用できます。

PM> `Install-Package System.Data.SqlClient`


CC BY-SA 4.0
2020-01-11T20:49:43.587
62173
2020-01-11T20:49:43.587
18851
62168
answer