首页 > 解决方案 > 将 CDS/Dataverse 中的 SQL 查询结果保存到 SQL 数据库表中的最有效方法

问题描述

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

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

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

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

标签: sqlazureazure-functionspowerappsdataverse

解决方案


这里有很多事情需要考虑。

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

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

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

    从 C# 批量插入 SQL Server

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

推荐阅读