таблица BKPF с четырьмя ключевыми полями - MANDT,BUKRS,BELNR,GJAHR
И например таблица - CDHDR, где одно из ключевых полей OBJECTID, которое является конкатенацией этих четырех.
Как производится связка в таких случаях в самом сапе?
У меня два варианта
1. concat(h.MANDT,h.BUKRS,h.BELNR,h.GJAHR) = c.OBJECTID
2. каждое из четырех полей связывается с результатом substring(OBJECTID, N, N)
Как по мне - так оба какие-то сомнительные....
Можно конечно столбец создать с результатом склейки и индекс на него положить, но это уже как бы сторонняя оптимизация.
Как наиболее эффективно связаться?
1 вариант лучше Как делают в SAP, можно попробовать подсмотреть профайлером, если вы уверены, что они это делают
к сожалению, у меня нет такой возможности
если ты фильтруешь таблицу CDHDR по тому что нашел в BKPF, то индекс не понадобится
следует её заполучить
Тогда к чему вопрос то? Как лучше делать, если писать самому? Лучше не создавать подобных структур данных
я тестовое задание делаю на саповских датасетах у меня есть то, о чем рассказал, другого не будет) Про "лучше не создавать", соглашусь, но сейчас мы не об этом Спасибо)
вариант с 4 сабстрингами чудовищный но если есть сильно селективные фильтры по второй таблице, то он может оказаться эффективнее первого всё зависит от, в общем
Обсуждают сегодня