Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 针对SQL数据库的StreamInsight 2.1和。。。它是如何工作的?_C#_Sql Server_Streaminsight - Fatal编程技术网

C# 针对SQL数据库的StreamInsight 2.1和。。。它是如何工作的?

C# 针对SQL数据库的StreamInsight 2.1和。。。它是如何工作的?,c#,sql-server,streaminsight,C#,Sql Server,Streaminsight,我已经安装了StreamInsight 2.1。我已经能够打开它和Server.Create(),公开WCF端点,并使用事件流调试器连接到它。我发现了大量创建虚假事件源的示例 我想知道如何创建我认为可能的东西:针对SQL 2012数据库的长期查询。我还没有找到任何连接到RDB的示例代码,只是声明“这只是为了展示,实际上你可能会连接到RDB” 它只能使用LINQ到SQL吗?实体框架4?更简单的ADO.NET?一些MS SQL特定协议 我想真正让我困惑的是这些长期的查询应该如何工作。这些天来,对于我

我已经安装了StreamInsight 2.1。我已经能够打开它和Server.Create(),公开WCF端点,并使用事件流调试器连接到它。我发现了大量创建虚假事件源的示例

我想知道如何创建我认为可能的东西:针对SQL 2012数据库的长期查询。我还没有找到任何连接到RDB的示例代码,只是声明“这只是为了展示,实际上你可能会连接到RDB”

它只能使用LINQ到SQL吗?实体框架4?更简单的ADO.NET?一些MS SQL特定协议

我想真正让我困惑的是这些长期的查询应该如何工作。这些天来,对于我来说,微软在SQL Server中拥有一个只有某个独立SKU(StreamInsight)才能访问的公开功能似乎有些奇怪。因此,它必须是以下两种情况之一:

SQL是否知道查询的持久性,或者StreamInsight是否只是修改LINQ语句以有效地轮询(例如通过添加
和@LastExecution)
我想知道如何创建我认为可能的东西:针对SQL的长期查询
2012年数据库

现在我们开始。不可能。期间。为什么你认为这是可能的?需要轮询,最好的是消息队列的等待轮询,但不,不可能。太糟糕了


你从哪里得到了可能的有趣想法?

你提到的长期查询是使用运行在StreamInsight引擎中的LINQ编写的,而不是SQL Server本身。有了StreamInsight,我们开发人员就可以编写适配器/源/接收器代码来获取数据

它只能使用LINQ到SQL?实体框架4?更简单的ADO.NET?一些MS SQL特定的协议吗

是的。我以前写过这段代码,我很幸运只使用了普通的ADO.NET。就我们的需要而言,它比LINQ to SQL和实体框架灵活得多


您是否可以控制表的架构您正在查询?如果您这样做,我建议添加某种LastUpdate datetime列,该列在表中的数据更改时更新。这样,您可以以这样一种方式编写查询,即只收回更改而不返回整个表本身。您的适配器/源将需要某种计时器来执行SQL语句。您还需要维护上次执行的日期时间,以便将其插入SQL语句。

我还没有完成此解决方案,但在我看来,可以在SQL Server中实现Service Broker或SQL查询通知,以便在数据更改时向应用程序发送消息,然后使用Streamins有权处理和响应此更改的状态


我认为这将产生“长期查询”的效果,并避免(潜在的浪费)轮询的开销。

您可以为SSSB创建一个StreamInsight输入适配器,以便根据来自服务器代理队列的消息生成事件。

也许可以使用执行CLR SQL代码的触发器模拟静态查询,通过WCF(例如,使用MSMQ绑定)通信事件信息。只是一个想法,100%未经测试。有StreamInsight引擎负责使用集成查询语言(LINQ)编写的固定查询来处理和分析事件这篇文章和其他文章可能不会在同一句话中明确使用常设查询和SQL Server,但如果您是对的,那么此类来源肯定会误导您。请给出数据流示例,然后介绍数据源“在生产系统中,这很可能被针对数据库或内存缓存(如Windows AppFabric)的LINQ to SQL查询所取代。"所有这些的问题在于,您喜欢忽略一个小事实,即SQL server无法在查询到达表时神奇地向查询添加新数据。这不是SQL所能做到的。在SQL server中,您发出一个查询,它返回那里的数据,然后结束。当插入新数据时,查询将不会返回它。就像这样简单.Downvote您想要的一切-现实不会屈从于您。是的,我可以控制模式。因此,在您的使用中,StreamInsight提供的价值超出了LINQ和RX的功能?作为依赖项,它是否值得开销?与Microsoft的任何其他代码库一样,您是否在解决方案中使用它取决于您的需求是的,我不清楚你在这里想做什么。