小数据有效负载 - 限制您获取的数据量
企业数据应用的最重要模式之一是限制您提取到 Power Apps 中的数据大小。 如果数据有效负载较小,几乎所有其他操作都变得更简单。 当您直接连接到 Items 属性中的数据源时,库和表控件会自动为您执行此操作。 例如,当直接连接到远程数据源时,库控件会以较小增量(例如 100 条记录)对数据进行分页。 此默认值利用最终用户很少真正需要超过一百条记录来执行用户任务的事实。
使用委派
保持数据有效负载较小的一个关键方法是在到达 Power Apps 之前依靠数据源为您工作。 委派 是指 Power Fx 可以将 Power Fx 表达式转换为数据源(例如 Dataverse、SQL Server、SharePoint 和 Excel)可以自行处理的查询表达式。 然后,Power Fx 将该查询委派给数据源,或者将执行查询工作、数据糅合的责任交给数据源。 数据源生成正确的数据并将其返回到 Power Apps。
当数据源直接绑定到库或表时,数据将以 100 条记录的小性能增量进行分页或传回 Power Apps。 不同的数据源有不同的功能。 例如,与 Excel 相比,Dataverse 具有更多功能来筛选服务器上的数据。 一个良好示例是 CountRows 和 CountIf。 Dataverse 以有限的方式支持 CountRows。 Dataverse 定期计算表的大小并保留该值。 当调用 CountRows 时,您将获得该值。 这样,它就不必执行全表扫描来获取每个 CountRows 调用的确切数字。 但 Dataverse 还支持 CountIf 最多 50,000 行的精确计数。 它提供这两种不同的功能作为帮助保持 Dataverse 服务器的良好性能的方法。 相反,SharePoint 不支持此功能。 因此,不会委派 SharePoint 的具有 CountRows 或 CountIf 的 Power Fx 表达式。 相反,Power Apps 下载的行数有限,即 500 – 2000。 Power Fx 在本地处理 500/2000 条记录并返回结果。 如果您的数据始终少于 500/2000 条记录,此方法有效。 但如果它超过 500/2000 条记录,您可能会得到不正确的结果。
避免太多列
默认情况下,Power Apps 使用功能调用显式列选择计算给定查询所需的实际列。 默认情况下,此功能针对所有新应用处于打开状态。 若要在画布应用上打开显式列选择功能,请转到设置 > 即将发布的功能 > 预览 > 打开显式列选择开关。
建议
若要实现较小数据有效负载的目标,请考虑以下问题和建议:
目标是库或表的默认查询仅返回大约 100 – 200 条记录。 如果您使用可委派查询,将自动实现此目标。 如果您正在查询 API 或其他不支持委派的源,请使用参数来优化结果。
- 考虑使用基于数据源的视图来自动筛选数据。 大多数企业级应用大量使用数据源上的视图。
- 考虑使用默认查找或筛选值来确定数据范围。
- 在显示数据之前,请考虑在 UI 中要求搜索参数。
- 考虑以下有关您的应用的问题:
- 默认情况下给定屏幕上需要什么?
- 最终用户真正需要哪些数据来采取特定业务行动?
- 用户通常不需要在初始屏幕上显示数千条记录来完成任务。
使用数据源的委派表开始生成库或表的查询。 仅选择您的查询支持的功能。 如果您的查询不可委派,您可以采取什么措施使其可委派?