我已经看到它出现在代码中的多个位置,从来没有解释,只是在其上方有一个神秘的注释(包含声明和执行以了解上下文。这只是运行 SqlCommand 的标准过程):
//SqlCommand cmd = new SqlCommand();
//cmd.ExecuteReader();
//Read off the results
//Cancel the command. This improves query time.
cmd.Cancel ();
基本上,在完成查询后,它会返回并取消查询,从而获得一些性能提升。我想当它消失并释放 XmlReader 时您可能会收回一些内存,但通常它无论如何都会超出范围。
我以前从未关心过它,但它最终出现在我正在审查的一些代码中。在代码中运行 SqlCommand 后取消它实际上是否会以某种方式加速它,或者这只是一些奇怪的程序员迷信?
根据MSDN http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.close.aspx, 这是对的。
Close 方法填充值
对于输出参数,返回值
和 RecordsAffected,增加
关闭所需的时间
用于处理的SqlDataReader
大型或复杂的查询。当。。。的时候
返回值和数量
受查询影响的记录不
重要的是,所花费的时间
关闭SqlDataReader可以减少
通过调用 Cancel 方法
之前关联的 SqlCommand 对象
调用 Close 方法。
Weird!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)