![]() |
#2 |
Участник
|
один сложный запрос не всегда дает наилучшую производительность в многопользовательской системе.
даже в чистом SQL. общая рекомендация для SQL - сводите сложный запрос к нескольким простым, для которых с большой вероятностью есть уже скомпилированные планы в кэше и для которых у SQL есть хорошие эвристики. дополнительная рекомендация для Аксапты - обязательно смотрите на свойство CacheLookup таблицы. в 2009 для таблиц BOM, BOMTable свойство CacheLookup=Found это значит, что простые запросы по этим таблицам возможно вообще не будут отправляться на SQL, аксапта будет возвращать уже найденные записи из кэша. (простые - это запросы по одной таблице, в условиях присутствуют только одно ключевое поле. Как правило, метод find содержит именно такой простой запрос) поэтому вполне возможно, что стоит свести к X++ методу, который оперирует только простыми запросами по таблицам BOM, BOMTable. Тогда в многопользовательской системе, где много разных пользователей работает с BOM, вы с бОльшей вероятностью получите более быстрый код. Главное: * НЕ гонитесь за производительностью ОДНОГО запроса, который выполняется в МОНОПОЛЬНОМ режиме. * постарайтесь поднимать ОБЩУЮ производительность многопользовательской системы |
|
|
За это сообщение автора поблагодарили: SuperStar88 (1). |
|
|