Axapta 最快的X&x2B+;填充临时表的代码
我需要在InventTrans上循环,以累积某些日期的itemId数量,并使用该临时表作为数据源,将结果填充到临时表中。我使用了一个类,对于一个itemId,这个过程相当长(大约5-10秒) 哪种代码最快Axapta 最快的X&x2B+;填充临时表的代码,axapta,temp-tables,x++,Axapta,Temp Tables,X++,我需要在InventTrans上循环,以累积某些日期的itemId数量,并使用该临时表作为数据源,将结果填充到临时表中。我使用了一个类,对于一个itemId,这个过程相当长(大约5-10秒) 哪种代码最快 使用执行该过程的类 临时表上的方法 在调用方窗体上单击按钮()进行处理 如何改进代码?由于您没有显示代码,因此改进代码纯粹是推测性的 我会完全排除第三个;在单击的方法中放置业务逻辑不是一个选项 需要考虑的事项: 客户机/服务器:倾向于将逻辑和数据访问放在服务器端,在table方法或class
如何改进代码?由于您没有显示代码,因此改进代码纯粹是推测性的 我会完全排除第三个;在单击的方法中放置业务逻辑不是一个选项 需要考虑的事项:
- 客户机/服务器:倾向于将逻辑和数据访问放在服务器端,在table方法或class static方法(或使用class属性)上使用
关键字。避免就参数等问题向客户回电server
- 事务:在主循环外使用ttsbegin/ttscommit,它甚至可以加快临时表的磁盘访问速度
- TempDB表:在AX 2012中考虑使用TEMPDB表填充<代码>插入式记录集< /C> > /LI>
- 尽可能避免使用临时表:在您的情况下,
表可能为您准备好了数据。使用select中的InventSum
关键字,并结合sum
表中的join。考虑一下要做些艰苦的工作。这将使SQL server进行计算,这通常会导致性能提高两位数李>InventDim
花在什么上的时间?使用代码分析器。请显示您的代码。问题可能出在代码中,而不是流程中。我做过类似的事情,结果要好得多,但如果我不知道你在做什么,我就无能为力。“在你的情况下,InventSum表可能已经为你提供了数据。”这是一个奇妙的观察。