gpt4 book ai didi

sql-server - 如何实现高性能 Excel VSTO 到 SQL Server?

转载 作者:行者123 更新时间:2023-12-04 21:41:22 24 4
gpt4 key购买 nike

我正在开发 Excel 2010 VSTO 解决方案(在 Visual Studio 2010 中为 Excel 工作簿执行代码隐藏),并且需要与集中式 SQL Server 2008 R2 数据源进行交互以进行读取和写入操作。

该数据库将在主表中包含多达 15,000 行以及相关行。理想情况下,电子表格将从数据库中填充,异步使用,然后上传以更新数据库。我担心围绕数据量的性能。

该电子表格可通过门户网站下载。

到目前为止,我已经考虑了两种解决方案:

  • 充当数据访问层的 WCF 服务,工作簿对其进行内联查询以使用整个必需的数据集填充其表。一旦从工作簿本身触发更新,更改就会发布到 WCF 服务。
  • 在从 Web 门户下载的隐藏工作表中预加载带有自己数据的工作簿。通过门户网站上传修改后的工作簿将保存更改。

  • 在我们的核心功能正常工作之前,我不会太在意优化,但我不想在 future 的架构方面关闭任何好的选择。

    我想避免这样一种情况,即我们必须一次有选择地处理一小部分数据以避免速度变慢-> 将这种行为集成到电子表格中听起来像是不必要的复杂性。

    也许在这方面有更多经验的人可以推荐一种不会让我们措手不及的方法?

    最佳答案

    做过类似的事情:

  • 确保所有数据访问代码都在后台线程上运行。 Excel 函数和插件(大部分)在 UI 线程上运行,并且您希望您的 UI 具有响应性。编码是不平凡的(在 Excel '03 中它需要一些 pinvoke,可能在 '10 中已更改),但可能。
  • 使您的互操作操作尽可能粗略。每个互操作调用都有很大的开销,因此如果您以编程方式格式化,请一次格式化尽可能多的单元格(使用范围)。该建议也适用于数据更改——您只希望差异更新 UI,这意味着将数据集的副本保留在内存中以检测差异。如果同时进行大量 UI 更新,您可能需要插入一些人为的暂停(节流)以让 UI 线程在您更新时显示进度。
  • 您确实需要一个中间层应用程序来与 SQL Server 和各种 excel 实例通信。这允许您以后做一些好事,例如缓存、负载平衡、热故障转移等。这可以是您建议的 WCF 服务,也可以是 Windows 服务。
  • 关于sql-server - 如何实现高性能 Excel VSTO 到 SQL Server?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8721774/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com