将 CDS/Dataverse 中的 SQL 查询结果保存到 SQL 数据库表中的最有效方法

问题描述

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

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

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

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

解决方法

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

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

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

  3. 也许您一次插入 1 个项目?你在使用Sql批量复制类吗?

    Bulk Insert In SQL Server From C#

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...