Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.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/0/performance/5.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# 我是手工做的。该语句只触发一次,因此Prepare()对我没有帮助。索引没有正确使用,但这是firebird中子查询的一个已知“特性”。这就是为什么我改用EXISTS而不是Ravi引用的更简洁的怪异语句。但我在flamerobin中测试了各种变体,奇怪的变_C#_Performance_Firebird - Fatal编程技术网

C# 我是手工做的。该语句只触发一次,因此Prepare()对我没有帮助。索引没有正确使用,但这是firebird中子查询的一个已知“特性”。这就是为什么我改用EXISTS而不是Ravi引用的更简洁的怪异语句。但我在flamerobin中测试了各种变体,奇怪的变

C# 我是手工做的。该语句只触发一次,因此Prepare()对我没有帮助。索引没有正确使用,但这是firebird中子查询的一个已知“特性”。这就是为什么我改用EXISTS而不是Ravi引用的更简洁的怪异语句。但我在flamerobin中测试了各种变体,奇怪的变,c#,performance,firebird,C#,Performance,Firebird,我是手工做的。该语句只触发一次,因此Prepare()对我没有帮助。索引没有正确使用,但这是firebird中子查询的一个已知“特性”。这就是为什么我改用EXISTS而不是Ravi引用的更简洁的怪异语句。但我在flamerobin中测试了各种变体,奇怪的变体是迄今为止最快的。@user1766553:谢谢你的澄清。我还是怀疑你的密码。否则就不可能有这么快的速度。您可以发布一些代码吗?前面的程序:myConnection=newFBconnection(myConnectionString);Co


我是手工做的。该语句只触发一次,因此Prepare()对我没有帮助。索引没有正确使用,但这是firebird中子查询的一个已知“特性”。这就是为什么我改用EXISTS而不是Ravi引用的更简洁的怪异语句。但我在flamerobin中测试了各种变体,奇怪的变体是迄今为止最快的。@user1766553:谢谢你的澄清。我还是怀疑你的密码。否则就不可能有这么快的速度。您可以发布一些代码吗?前面的程序:myConnection=newFBconnection(myConnectionString);Connection.Open()//属性,当我按下搜索按钮://create the sql命令时使用myConnection,因为截止日期作为dbParam IDbCommand aCmd=new FbCommand(sql,Connection)传递;IDataReader aReader=aCmd.ExecuteReader();这是最后一行,需要3分钟抱歉,格式太糟糕了。。。复制+粘贴忽略我的换行符和选项卡您使用的事务隔离?在等待结果时,您是否查看了以查看数据库中发生了什么?您可以在MON$statements中看到当前正在执行且处于空闲状态的语句。您好,我一次只运行一个事务,所以我希望这不重要,因为我从未研究过:)如果我错了,请纠正我。关于MON$-表:它们看起来很有趣,我能从中学到什么?空话?什么时候会这样?是否可能看到我传递的内容的优化语句?我很想看看flamerobin是如何优化我的语句的,也许这解释了与代码性能之间的差异……是的,没错。可能语句执行相同的操作,并且提供程序在执行之前或之后挂起,或者语句文本因任何原因略有不同。这就是我建议使用MON$表的原因——您可以看到Firebird在这三分钟内做了什么,并缩小问题的范围。
SELECT * FROM members M 
WHERE exists (select 1 from transactions WHERE taDateTime >= '30.06.2013' and Memberid = M.ID)
myConnection = new FbConnection(myConnectionString);
Connection.Open();

// property of a helper class, uses myConnection
// Then when I press the Search button:
// create the sql command, because the cut-off date is passed as a dbParam
IDbCommand aCmd = new FbCommand(sql, Connection);
IDataReader aReader = aCmd.ExecuteReader();
SELECT * FROM members M 
where M.ID not in (select distinct memberid from transactions WHERE taDateTime >= '30.06.2013')