首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Oracle9i填充.NET DataSet速度较慢

从Oracle9i填充.NET DataSet速度较慢
EN

Stack Overflow用户
提问于 2009-12-22 17:02:15
回答 3查看 1.3K关注 0票数 1

这是我的朋友在电话中问到的问题。他编写的C# 3.5程序正在从具有350,000条记录的患者主表中填充数据集。它为Oracle使用微软ADO.NET驱动程序。ExecuteQuery方法需要30秒以上的时间来填充数据集。但是,在Toad中,相同的查询(获取约20,000条记录)所需时间不到3秒。他没有在程序中使用任何事务。它在用于搜索的列(名称)上有一个索引。

以下是我建议的一些替代方案:

1)尝试使用数据读取器,然后填充数据表,并将其传递给表单以将其绑定到组合框(这不是一个好主意,因为这可能需要同样的时间)

2)试用Oracle的ADO.NET驱动程序

3)使用Ants分析器查看是否可以识别任何特定的ADO.NET行。

有没有人遇到过类似的问题,有什么方法可以解决这个问题。

谢谢,Chak。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-27 13:40:03

你真的需要做一个扩展的SQL跟踪,看看速度慢是从哪里来的。这里有一篇来自Cary Millsap (方法R的,以前在Hotsos工作)的论文,详细介绍了如何做到这一点:

http://method-r.com/downloads/doc_details/10-for-developers-making-friends-with-the-oracle-database-cary-millsap

票数 1
EN

Stack Overflow用户

发布于 2009-12-22 23:24:45

Toad通常只获取前x行(在我的设置中是500行)。因此,请仔细检查比较是否有效。

然后,如果可能,您应该尝试将db内容从表单内容中分离出来,以查看db是否占用了时间。

如果是这样的话,尝试使用Oracle库,如果速度更快的话,我们已经看到最新的Oracle驱动程序与标准的Microsoft驱动程序之间有50%的改进。

票数 1
EN

Stack Overflow用户

发布于 2009-12-22 17:16:33

不知道他用来完成任务的实际代码,也不知道他实际获取的行数(我希望他不会读完所有的350K?)不可能说出任何对他有帮助的话。

为了清楚起见,让他在问题中添加一个代码片段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1945068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档