Ваш ответ правильный: Informatica по умолчанию добавляет инструкцию ORDER BY в SQL Override. «-» в конце инструкции отключает его. НО:
- Informatica делает это нарочно. Для ускорения создания кеша необходимо кэшировать кеш, чтобы улучшить чтение кеша. Следует отражающий порядок портов, упомянутых на
Condition
вкладке Lookup Transformation
Если ORDER BY отключен, вы, вероятно, увидите следующее сообщение в журнале сеанса указывает на возможное снижение производительности:
Message: Warning: Unsorted input found when building the cache for the Lookup transformation [lkp_name]. ...
В целом этого следует избегать. (Ну, вообще-то следует избегать переопределений SQL. По многим причинам. Но это совсем другая история.) Однако в некоторых особых случаях это может потребоваться и быть полностью оправданным.
Пример:
Condition
определяется, чтобы сделать согласование на портах А, В, С - но строки не являются уникальными, и мы должны получить последнюю строку, используя updatedOn
. В этом случае мы можем использовать Use First Value
для Lookup policy on multiple match
. И чтобы убедиться, что последняя обновленная строка будет первой, мы включим наш собственный пункт ORDER BY A, B, C, updatedOn desc --
. Это позволит убедиться, что данные отсортированы по столбцам условий, как нам нужно, и самая последняя строка будет первой. И --
должен быть там, чтобы предотвратить второй пункт ORDER BY
, который Informatica добавит в любом случае.