gpt4 book ai didi

axapta - 填充临时表的最快 X++ 代码

转载 作者:行者123 更新时间:2023-12-02 03:59:55 24 4
gpt4 key购买 nike

我需要在 InventTrans 上循环以累积某些日期的 itemId 数量,并使用此临时表作为数据源,使用表单中的结果填充临时表。我使用了一个类,对于一个itemId,这个过程相当长(大约5-10秒)。

哪个代码最快?

  1. 使用执行该过程的类
  2. 临时表上的方法
  3. 在调用者表单上单击按钮()进行处理

如何改进我的代码?

最佳答案

由于您没有展示您的代码,因此对其进行改进纯粹是推测性的。

我会完全排除第三种;将业务逻辑放入单击的方法中并不是一种选择。

需要考虑的事项:

  • 客户端/服务器:更喜欢将逻辑和数据访问放在服务器端,在表方法或类静态方法(或使用类属性)上使用server关键字。避免回调客户端获取参数等。
  • 数据访问:考虑索引的使用、在 select 中使用字段列表等。
  • 事务:在主循环之外使用 ttsbegin/ttscommit,即使对于临时表也能加快磁盘访问速度。
  • TempDB 表:在 AX 2012 中,考虑使用填充有 insert_recordset 的 TempDB 表。
  • 如果可能,请避免使用临时表:在您的情况下,InventSum 表可能已为您准备好数据。在选择中使用 sum 关键字,并结合 InventDim 表上的 join。考虑制定一个 View 来完成艰苦的工作。这将使 SQL 服务器执行计算,这通常会导致性能提高两位数。

长查询?在您的用户设置中启用长查询的 SQL 日志记录。

时间花在什么上了?使用代码分析器。

关于axapta - 填充临时表的最快 X++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12670232/

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