Имам формуляр с 4 източника на данни. Той е в стил на страница със списък и има Datasource1 (голяма таблица с много релации, колони и индекси), показана в решетка. Когато отворя този формуляр, отнема около 200 милисекунди, за да го отворя, но когато го опресня, опресняването отнема 13 секунди.
Използвах инструмента за профилиране на код и открих, че времето се изразходва в Datasource1 в метода executeQuery() чрез команда super();
Когато executeQuery() се извиква от формуляр от
Datasource1_ds.executeQuery();
отнема 200ms, за да го извикате.
Има около 15 колони в мрежата във формуляра и сортирането по една отнема малко по-малко от 1 секунда.
Та въпросът ми е. Какво се извиква в super();, когато формулярът се обновява от задача F5 и не се извиква чрез отваряне на формуляр и извикване на Datasource1_ds.executeQuery();?
Опитвам се да използвам Code Profiler с различни настройки и действия, отстранявам грешки в кода в различни изпълнени действия, използвам Visual Studio Profiler, използвам Activity Monitor в Microsoft SQL сървър на Microsoft Dynamics AX база данни, променям таблицата Datasource1, без успех.
Всеки път, когато се окажа на super(); Единственият път, когато опресняването е бързо, е когато имам филтри в мрежата и тя показва по-малко редове. (Опитвам се да използвам свойството VisibleRows в мрежата, но не помага.)
Използвам Microsoft Dynamics AX 2012 R2
this.query().literals(true);
следsuper()
в методаinit
на източника на данни. - person Jan B. Kjeldsen   schedule 07.04.2015