我需要做的是:我得到一个包含 100000 个值的数组,对于每个值我需要进行相同的查询,只需更改该特定值。现在,我在想,如果我在我的 c#/java 代码中循环所有这些值并进行查询,那将需要很多时间。我的另一个选择是在我的数据库中完成所有工作,填充一个临时表,然后从该临时表中读回我的代码。
做这种事情的最快方法是什么?
private void GetValues(List<Element> _Elements)
{
foreach (Element e in _Elements)
{
using (OracleCommand cmd = new OracleCommand())
{
cmd.Connection = _conn;
cmd.CommandText = "select value from table where something = " +e.Indicator;
using(OracleDataReader r = cmd.ExecuteReader());
while (r.Read())
{
e.setvalue = r.GetString(1);
}
r.Close();
}
}
}
}
[编者注:问题最初并不清楚它是 C# 还是 Java ——但这些语言在很大程度上是等效的,答案应该适用于两者。]