【问题标题】:Most efficient way to save result of SQL query in CDS/Dataverse into SQL Database table将 CDS/Dataverse 中的 SQL 查询结果保存到 SQL 数据库表中的最有效方法
【发布时间】:2021-09-14 23:33:43
【问题描述】:

为了我的应用程序的目的,我创建了一个与我的 Dataverse 环境连接的 Azure 函数,使用 SELECT 从不同的表中查询数据(我根据表 A、B、C 中的记录创建新记录),将结果存储到一个列表,然后将这些记录保存到相同的 Dataverse 环境中,但保存到另一个表中(比如说 D)。我决定采用这种解决方案是因为 Power Automate 创建这些新记录的速度太慢了。

它工作正常,但是当请求太多(超过 2-3 个用户使用应用程序并运行 Azure Functions)时,保存到 Dataverse 也开始变得太慢。

所以我正在考虑另一种方法来保存和存储这些记录。重要的是,表 D 中的这些记录仅用于计算目的,用户不使用它们或编辑它们。这就是为什么我正在考虑创建 SQL Datables 表,将这些记录(仅来自表 D)存储在那里,并在我的应用程序中根据需要更改连接。

你能建议我最有效的方法吗?简而言之,我需要的是:

  • 连接到 Dataverse 并从表 A、B、C 中查询数据。此查询的结果将是表 D 的记录
  • 将查询结果保存到 SQL 数据库表(表 D)中

【问题讨论】:

    标签: sql azure azure-functions powerapps dataverse


    【解决方案1】:

    这里有很多事情要考虑。

    1. 如果用户不使用表 D 的数据,是否可以在一夜之间运行此操作,或者在流量较低且可以接受此操作的缓慢性能的时候运行此操作?

    2. 您是否考虑过使用 SQL 视图?你真的需要存储计算的数据吗?

    3. 也许您一次插入 1 个项目?你在使用 Sql Bulk Copy 类吗?

      Bulk Insert In SQL Server From C#

    1. 在此操作期间观察服务器的 CPU 利用率。如果可能射击到100%。您希望达到 70% 的平均利用率,以便在性能和成本之间取得良好的平衡。所以另一种选择是扩大规模。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      • 1970-01-01
      • 2014-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多