首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个用户同时请求30,000行信息

多个用户同时请求30,000行信息
EN

Stack Overflow用户
提问于 2013-01-23 18:19:28
回答 1查看 351关注 0票数 3

我有一个可供3个用户使用的测试床应用程序。

如果所有用户同时运行应用程序,那么将运行一个存储过程,并且所有三个用户都将拥有结果集,当前使用的ADO.NET Datatable大约为30,000条记录,然后应用程序需要将这些记录移动到每个记录的Excel模板中。

该模板是一个xlsm文件,其中包含一些在导入数据后需要运行的VBA。此模板保存在解决方案中。

我将尝试使用Excel-Interop将数据从DataTable移动到worksheet

有没有人有将数据表中的大量数据移动到Excel中的经验?

@slugster建议“从Excel设置一个数据源,然后使用脏读来运行查询”……是否可以在Excel中设置链接到非物化数据表的数据源?

通过xl interop循环遍历一个30000行乘10列的表会遇到问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-05 20:37:22

有没有将这些数据从数据表转移到Excel中的经验?

不是来自DataTable对象,而是使用Excel内置的导入数据能力的数据量,是的。

@slugster建议“从Excel设置一个数据源,然后使用脏读操作运行查询”……是否可以在Excel中设置链接到非物化数据表的数据源?

我也会建议你这样做。更进一步,我建议先创建一个存储过程,然后再调用它。使用存储过程时,您应该会看到更好的性能。该过程可以收集和准备数据,然后将其返回到Excel。此外,您还可以在过程中内置缓存机制。例如,如果您的数据每天只更改一次,那么您每天只在源表中重建一次数据,因此只有第一个请求数据的用户会受到初始性能的影响。此外,根据您在VBA中的Excel中执行的后处理类型,也可以在该过程中进行处理。如果您在该过程的顶部添加了SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED,或者对您希望允许脏读操作的表使用(NOLOCK)提示,则该过程还将有助于减少锁定问题的可能性。

这里有一篇关于在Excel中使用存储过程的好文章:http://codebyjoshua.blogspot.com/2012/01/get-data-from-sql-server-stored.html

通过xl互操作遍历一个30000行乘10列的表会遇到问题吗?

这取决于你对“问题”的定义。我可以看到可能的性能影响,但是,如果您在存储过程中处理尽可能多的内容,就应该没问题。在数据的世界里,这真的是微不足道。

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

https://stackoverflow.com/questions/14477263

复制
相关文章

相似问题

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