Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance testing 为什么刷新后的executeQuery需要100倍以上的时间?_Performance Testing_Axapta - Fatal编程技术网

Performance testing 为什么刷新后的executeQuery需要100倍以上的时间?

Performance testing 为什么刷新后的executeQuery需要100倍以上的时间?,performance-testing,axapta,Performance Testing,Axapta,我有一个包含4个数据源的表单。它采用listpage样式,并在网格中显示Datasource1(包含大量关系、列和索引的大表)。当我打开此表单时,它需要200秒才能打开,但当我刷新它时,它需要13秒才能刷新 我使用了代码探查器工具,发现时间是由命令super()在executeQuery()中的Datasource1中消耗的 由从窗体调用executeQuery()时 Datasource1_ds.executeQuery(); 打电话需要200毫秒 表格中有15列,按一列排序只需不到1秒 所

我有一个包含4个数据源的表单。它采用listpage样式,并在网格中显示Datasource1(包含大量关系、列和索引的大表)。当我打开此表单时,它需要200秒才能打开,但当我刷新它时,它需要13秒才能刷新

我使用了代码探查器工具,发现时间是由命令super()在executeQuery()中的Datasource1中消耗的

由从窗体调用executeQuery()

Datasource1_ds.executeQuery();
打电话需要200毫秒

表格中有15列,按一列排序只需不到1秒

所以我的问题是。在super()中称为什么当表单由任务F5刷新,而不是通过打开表单并调用Datasource1_ds.executeQuery()调用时

我尝试使用具有不同设置和操作的代码探查器,调试完成的各种操作中的代码,使用Visual Studio探查器,在Microsoft Dynamics AX数据库上的Microsoft SQL server中使用活动监视器,更改Datasource1表,但没有成功

每次我在super()上结束刷新速度快的唯一时间是当网格上有过滤器且显示的行数较少时。(我尝试在网格上使用VisibleRows属性,但没有帮助。)


我使用的是Microsoft Dynamics AX 2012 R2

,我建议使用SQL Server探查器捕获以下查询:(1)在打开ListPage表单时在初始
executeQuery()
执行,然后(2)在表单刷新时调用
executeQuery()


比较这两个查询的执行计划必须显示瓶颈。您可以捕获Showplan XML事件。

您读过这篇很棒的文章吗?@MaximLazarev是的,但我对task(#taskF5)方法有问题。表单和任务方法上的F5未修改。@boucekv:在点击刷新之前是否更改表单中的排序?我这样问是因为表格中的数据检索受表的聚类索引的影响,如果排序与聚类索引不一致,这可能是数据检索速度较慢的原因。您还可以查看跟踪解析器()并检查打开表单和刷新之间的查询是否不同。@FH实际上,我只是使用跟踪解析器查找有问题的查询。查看表单开头的查询并进行比较是一个很好的技巧。跟踪解析器返回我的查询带有?e、 g.“(T1。RECID@boucekv:关键字是“文字”或“强制文字”。我已经有一段时间没有使用它了,因此我必须自己做一些研究,但这些链接应该可以让您开始:和。只需搜索关键字“文字”“在这些页面上。问题在于被调用的查询。它们是不同的。速度慢的一个有15倍多的东西是WHERE子句。现在我试图找到什么可以更改为在刷新表单时调用的querz。现在没有成功。”。