我有一个C#应用程序在内存中有一个大的DataTable
。我需要使用搜索过滤器来执行DataTable.Select
以对数据进行子集合。将表中的主键添加到数据检索性能有帮助吗?是否还有其他技巧可以在子设置DataTable
时获得最快的性能?C#,数据表,主键和选择性能
这就是我目前正在做的;
using (DataTable datThisProduction = datProduction.Select("IDColumn = '" + strThisID + "'", "DateColumn ASC").CopyToDataTable())
我需要搜索的IDColumn
,然后排序DataColumn
。主键是否应包含两列?
我查找了其他关于DataTable
主键的帖子,如果主键有帮助,似乎还存在不确定性。
更糟糕的情况是您是否将PK添加到DataTable中,并比较执行时间? –
请详细介绍一下:总共有多少行? “ThisID”只有一行吗?您的数据来自哪里(RDBMS或任何其他来源/流程)? “内存中的DataTable”究竟是什么意思?你想在哪里添加PK?如果有一个RDBMS(哪个?):为什么不直接读取这一行(通过索引)? – Shnugo
大量的数据。 1,000项(由ID标识),每项200+行。我将它从SQL Server读取到C#中的DataTable对象中。然后我需要提取每个项目的行。我可以从数据库中读取每个项目的数据,一次一个项目。但我试图减少到数据库的访问量。我希望处理内存中的数据比多次访问数据库要快。我找到了关于向DataTable对象添加主键的代码,其中一个DataTable被填充。我想知道这是否会加快提取每个项目的行。 – user1753352