在执行缓慢的代码方面需要帮助 [英] need help with slow executing code
本文介绍了在执行缓慢的代码方面需要帮助的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我如何才能更有效地编写此代码,使其执行得更快?
How can I write this code more efficiently so it will execute faster?
DataTable dt1 = new DataTable();
dt1.Load(DbInfo.DataRdr(Conn, "SELECT DISTINCT Events.Location FROM Events WHERE Events.Location NOT IN (SELECT Code FROM Locations)"));
int cnt = 0;
for (int i = 0; i < dt1.Rows.Count; i++)
{
Logging.Write(SetLength(" ", 10) + dt1.Rows[i]["Location"].ToString());
}
---------------------
DbInfo.DataRdr返回一个SqlDataReader对象.
---------------------
DbInfo.DataRdr returns a SqlDataReader object.
推荐答案
这应该运行得更快一点
This should run a little faster
SqlDataReader reader = DbInfo.DataRdr(Conn, "SELECT DISTINCT Events.Location FROM Events WHERE
NOT EXISTS( SELECT 1 FROM Location WHERE Code = Events.Location")
int colOrdinal = reader.GetOrdinal("Location");
while(reader.Read())
{
Logging.Write(SetLength(" ", 10) + reader.GetString(colOrdinal));
}
如果您写5,000,000条记录,是的,这将非常慢.阅读本文,希望对您有所帮助.
left-outer-join-vs-not-exists1/ [^ ]
left-outer-join-vs-not-exists2 / [ ^ ]
If you write 5,000,000 records, yes it will be very slow. Read this, I hope it helps you.
left-outer-join-vs-not-exists1/[^]
left-outer-join-vs-not-exists2/[^]
在我看来,上面的代码是好的.
In my openion above code is good.
这篇关于在执行缓慢的代码方面需要帮助的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文