【问题标题】:Delete records in axapta very slow删除axapta中的记录非常慢
【发布时间】:2010-07-01 08:33:32
【问题描述】:

我在 ax 2009 中有一个表格,显示表格的过滤记录(总共大约 5.000.000 条记录,大约 1000 条显示过滤)。 在表单中选择其中几条记录并通过表单控制 (alt+f9) 删除它们非常慢。 一条记录立即删除,选择20条左右需要几分钟! 桌子上只有一个 deleteAction - 知道什么会阻止该操作吗?

编辑:

关于表有两个索引,都不允许重复。第一个是整数字段的索引,第二个是三个字段的组合。

createRedIdIndex 未激活。

过滤器使用 queryBuildRange 中的一列 (employeeID)。

deleteAction:另一个表 (B) 引用了提到的表 (A) 的 id (indexed)。 A 在 B 上有一个 deleteAction。设置是“级联”

这两个表通过 id-field 关联。

关系可以通过索引来解决。

而且我想删除的只是大约 20 条记录 - 所以我不符合“要删除的数据量”太大的想法!

【问题讨论】:

  • 描述您的索引。索引是否唯一?是否启用了 RecIdIndex?描述你的过滤器。您的过滤器是否由索引解析?描述你的 deleteAction。表有关系吗?关系可以通过索引来解决吗?
  • 事务中的item会被移除,可能是你移除的数据量太大。
  • 原帖中的更新信息
  • 过滤器使用一列(employeeID):是否有以employeeId为第一个字段的索引?
  • employeeID 的正确 AX 名称应该是 EmplId(如果它链接到 EmplTable)。

标签: axapta record delete-record


【解决方案1】:

也看看这个: http://blogs.msdn.com/b/emeadaxsupport/archive/2010/07/12/forms-with-a-high-number-of-records-take-a-significant-time-to-show.aspx

考虑添加

grid.autoSizeColumns(false);

按照文章中的建议。

【讨论】:

    【解决方案2】:

    在 AX 中诊断数据库性能问题,在 SQL 标签页的 Tools\Setup 中启用 SQL 跟踪。

    【讨论】:

    • 完成了 - 一切似乎都很好。没有警告,查询正常。但执行时间仍然太长。删除 100 个条目大约需要几分钟时间。
    【解决方案3】:

    使用代码分析器查看时间的使用情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-28
      • 2012-04-23
      • 1970-01-01
      • 2015-02-23
      • 2014-02-27
      • 1970-01-01
      • 2017-04-03
      • 1970-01-01
      相关资源
      最近更新 更多