C# 如何使用OLEDB快速返回与键匹配的大量记录?

C# 如何使用OLEDB快速返回与键匹配的大量记录?,c#,performance,oledb,C#,Performance,Oledb,我正在使用OLEDB接近一个大的(约1000000条记录)表。目前,我运行一个查询返回整个表 为了加快加载速度,我考虑首先确定(在c#中)我需要的记录的键,然后只返回这些记录。这些键只能在c#中确定 我希望我只需要10000-100000条记录,每条记录都有不同的密钥。我可以通过OLEDB使用以下查询返回每个记录: "Select field1,field2,...,fieldn from table where key1 = " + key1[i] + " and key2 = " +key2

我正在使用OLEDB接近一个大的(约1000000条记录)表。目前,我运行一个查询返回整个表

为了加快加载速度,我考虑首先确定(在c#中)我需要的记录的键,然后只返回这些记录。这些键只能在c#中确定

我希望我只需要10000-100000条记录,每条记录都有不同的密钥。我可以通过OLEDB使用以下查询返回每个记录:

"Select field1,field2,...,fieldn from table where key1 = " + key1[i] + " and key2 = " +key2[i]

这是最快的方法吗?考虑到我需要以这种方式检索所有记录的1-10%,只检索整个表并跳过我需要的数据是否更快?

是否需要一次检索所有数据?你不能只返回部分结果(类似于LINQ中的
Take
Skip
)?你能在db端确定所需的键吗?或者将少量数据传递给db以导出键吗?我不明白你第一个问题的意思,但我需要在内存中同时从表中获取所有所需的数据。关于你的第二个问题:无法在DB端确定所需的键(确定它们涉及到查找图形的连接部分),也无法基于少量数据确定它们(我想我需要10000-100000个键)。什么是最快的,你尝试过测量吗?您的表是否以支持您似乎想要运行的大型范围查询的方式编制了索引。@Jorge:我实际上没有在代码中使用select*,用这种方式传输消息很方便。我对问题进行了编辑,以反映这一点。我不明白你评论的第一部分是什么意思