Visual studio 2008 用存储过程填充tableadapter比在SQL中运行存储过程花费的时间要长得多
我一直在尝试用数据填充我的超级组合框,但这需要花费大量的时间。但是,当我在使用sql server的情况下运行相同的存储过程时,它所花费的时间相对较少。程序挂起的代码行是:Visual studio 2008 用存储过程填充tableadapter比在SQL中运行存储过程花费的时间要长得多,visual-studio-2008,ado.net,infragistics,dataset,Visual Studio 2008,Ado.net,Infragistics,Dataset,我一直在尝试用数据填充我的超级组合框,但这需要花费大量的时间。但是,当我在使用sql server的情况下运行相同的存储过程时,它所花费的时间相对较少。程序挂起的代码行是: SprocPatientsTableAdapter.Fill(Me.PatientsDataSet.sprocPatients, SelectedCustomerID) 所谓时间的显著差异,我指的是sql server中少于5秒的时间与程序中超过3小时的时间之差。尝试使用sql server探查器查看程序正在向数据库发送的
SprocPatientsTableAdapter.Fill(Me.PatientsDataSet.sprocPatients, SelectedCustomerID)
所谓时间的显著差异,我指的是sql server中少于5秒的时间与程序中超过3小时的时间之差。尝试使用sql server探查器查看程序正在向数据库发送的确切查询。您可能会看到传递的一些其他参数会影响查询并显著降低查询速度。它返回的结果集有多大?如果你通过线路发送2.5GB数据,将其存储在内存中,然后通过它来填充一个集合,那么是的,当然会很慢
我想最大的问题是:你真的在使用所有被归还的数据吗?请告诉我你没有抓取整个表,然后过滤到七行并显示ID和用户名 对于此特定结果,数据库将发送45522行(~9.08mb) 至于我们是否需要所有这些数据这一大问题,不,我们不需要,我一直在争论,直到我越过蓝色进入我脸上极其深的海军色彩的领域,但不知何故,我们获得一切(而不仅仅是某一时刻所需的)是“至关重要的”。第一个线索是,我们正在抓取比我们需要的更多的东西,这是一个事实,我们正在使用一个多列组合框(花了1k以上的时间才得到那个控件),抱歉,结束
该过程是:用户输入用户名和id-->选择他们想要查看(并有权访问)的医院-->然后,该医院中使用我们服务的所有患者都将加载到ultracombobox中,并按帐号自动填充(隐藏)。ultracombobox(多列)与其他几个文本框(姓、名、中间名等)绑定,因此可以编辑信息。我要感谢RoadWarrior指导我最终解决禁用数据集约束的问题。使用数据集的超级组合框只显示数据,不进行操作,禁用约束后,我的超级组合框填充速度非常快