public DataTable FetchData(string sQuery)
{
DataTable dtable = new DataTable();
using (SqlConnection conn = new SqlConnection(conString))
{
conn.Open();
using (SqlCommand sqlCmd = new SqlCommand(sQuery, conn))
{
SqlDataReader sdRead = sqlCmd.ExecuteReader();
dtable.Load(sdRead);
}
}
return dtable;
}
Datatable dt = FetchData(string sQuery);
foreach(DataRow row in table.Rows)
ClassA obj = new ClassA(row);
// Some manipulations
//.....
Class A
{
int id;
int name;
A(DataRow dr)
{
id = dr["ID"];
name = dr["Name"];
}
}
我需要从数据库中检索近15,00,000行。C#.Net中的数据表现性能
我需要针对两种情况的建议。
我把上面的方法调用了1-5次,所以显然它创建了1-5个连接。 如果变成性能的10-20倍?(或创建一个全局连接并打开1个连接,并在最后关闭所有进程。)
datatable怎么样?任何选择。我认为我需要断开连接的体系结构来处理这么多行。我需要用检索到的数据填充我自己的类对象(或者迭代数据读取器,并在FetchData()中填入
List<objects>
)。
有什么建议吗?
“我需要从数据库中检索近15,00,000条记录。” - 你打算怎么处理它们? –
*有何建议?*如果 - 一次不加载15百万行。你需要做什么?如果可能的话:将处理移动到服务器 - 使用例如处理数据来处理数据。 T-SQL存储过程,并且只返回一个小得多的结果集到你的应用程序 –
@Mitch Wheat:我需要从数据库中检索近15,00,000条记录。“ - 你将如何处理它们。解析器具有与我检索的列有关的属性,我填充该对象并对该对象执行一些操作。现在,我正在迭代数据表并创建对象。 –