使用存储过程填充tableadapter比在SQL中运行存储过程要长得多

时间:2009-02-09 19:30:22

标签: visual-studio-2008 ado.net infragistics dataset

我一直试图用数据填充我的ultracombo框,但需要花费大量时间。但是当我从使用sql server运行相同的存储过程时,它需要相对没有时间。程序挂起的代码行是:

SprocPatientsTableAdapter.Fill(Me.PatientsDataSet.sprocPatients, SelectedCustomerID)

通过显着的时间差异,我的意思是在sql server中差异小于5秒,在程序中差异超过3小时。

5 个答案:

答案 0 :(得分:1)

尝试使用SQL Server Profiler查看程序正在向数据库发送的查询。您可能会看到一些其他参数正在传递,这些参数会影响查询并使其显着减慢。

答案 1 :(得分:1)

请参阅我的(accepted) answer一个非常相似的问题。

答案 2 :(得分:0)

它返回的结果集有多大?如果您通过电线发送2.5GB,将其存储在内存中并通过它旋转以填充集合,那么是的,当然它会很慢。

我想最重要的问题是:你真的在使用所有正在传回的数据吗?请告诉我你没有抓住整个表格,然后过滤到七行并显示ID和UserName!

答案 3 :(得分:0)

对于此特定结果,数据库发送45,522行(~9.08mb)

关于我们是否需要所有这些数据的重大问题我们不会这样做,而且我一直认为这个问题直到我在蓝色中进入了我脸上极其深色海军色的领域,但不知怎的,这是“关键任务”我们得到了一切(不仅仅是在特定时刻需要的东西)。我们获取的第一个线索比我们需要的更多的是我们首先使用多列组合框(花费超过1k才得到那个控件),抱歉咆哮。

过程是:用户输入他们的用户名和ID - >选择他们想要查看(并且有权访问)的医院 - >然后,使用我们服务的那家医院的所有患者都被加载到由帐号(隐藏)自动填充的ultracombobox中。 ultracombobox(多列)绑定到其他几个文本框(姓氏,名字,中间等......),因此可以编辑信息。

答案 4 :(得分:0)

我将赞美RoadWarrior,指导我最终解决对数据集禁用约束的问题。使用数据集的UltraCombo框仅显示不操纵它的数据,并且禁用约束我的ultracombo框填充速度非常快