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