【发布时间】:2011-07-08 13:33:13
【问题描述】:
我有以下代码查询数据库并填充数据表。
private DataTable Run(string sql)
{
var conn = new OdbcConnection();
string connString = "[myConnString];";
conn.ConnectionString = connString;
conn.Open();
var da = new OdbcDataAdapter {SelectCommand = conn.CreateCommand()};
da.SelectCommand.CommandText = sql;
var dt = new DataTable();
da.Fill(dt);
da.Dispose();
conn.Close();
return dt;
}
我刚刚在它上面运行了一个分析器,它显示这条线需要很长时间:
da.Fill(dt);
查询仅返回大约 1000 行。以下是此次通话中 .net 内部发生的情况的详细资料:
鉴于我正在运行查询,将其转换为数据表,然后将该表转换为对象列表,下面有什么可以优化的吗(以某种方式直接从数据适配器转换为对象列表??)。我基本上是在寻找解决此代码中此性能瓶颈的方法?
【问题讨论】:
-
这 10 秒中有多少只是接收数据的时间?不加载数据表,只是 getting 它。问题可能不是代码,可能是数据库、网络等。
标签: c# performance datatable sap-iq