Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.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# SqlDependency块执行方法的使用_C#_Asynchronous_Sqldependency - Fatal编程技术网

C# SqlDependency块执行方法的使用

C# SqlDependency块执行方法的使用,c#,asynchronous,sqldependency,C#,Asynchronous,Sqldependency,我目前正在试验SqlDependency。我有一个监视控制台应用程序,它除了在定义的SqlCommand上创建SqlDependency对象,然后调用dependency.Start()之外,实际上什么都不做;要监视的语句包含2个内部联接 为了现在测试这一点,我编写了另一个控制台应用程序来更新一条记录,该记录应该会更改已定义查询的结果。这些表中的数据约为100万行/表。现在,当调用执行update语句的方法时,SQL Server的后台检查过程需要很长时间(5秒),这会阻止调用方法。无需观看的更

我目前正在试验SqlDependency。我有一个监视控制台应用程序,它除了在定义的SqlCommand上创建SqlDependency对象,然后调用dependency.Start()之外,实际上什么都不做;要监视的语句包含2个内部联接

为了现在测试这一点,我编写了另一个控制台应用程序来更新一条记录,该记录应该会更改已定义查询的结果。这些表中的数据约为100万行/表。现在,当调用执行update语句的方法时,SQL Server的后台检查过程需要很长时间(5秒),这会阻止调用方法。无需观看的更新时间约为20毫秒


是否有一种异步方法不阻止我的调用方法?或者你建议怎么做?我还考虑在SqlCommand上设置通知对象。这将在sys.dm_qn_订阅中创建一个条目。但在这个视图中,对条目做出反应的最佳方式是什么?是否使用单独的服务对此表进行轮询?我非常喜欢在发生变化时挂起事件的概念。

用于sqldependency的查询是否符合这些规则?是的,我已经仔细核对了清单。所有字段都是数据库中的命名字段和普通字段。根据该列表,应该允许内部联接。sql server profiler显示,联接列和内部选择需要65%的时间(在我的语句中没有这样的情况)。在查询完成之前,侦听更改的过程是否已经开始?如果是这样的话:我能做点什么来反对它吗?