У нас есть большие (2M + строки) таблицы данных продуктов с более чем 50 полями данных и несколькими кодами продуктов для разных стран. Я хотел бы иметь возможность эффективно объединять из ProductData в различные таблицы поиска на основе различных полей кода. В настоящее время мы используем отдельные, но очень похожие SP для реализации логики, и это приводит к проблемам с версиями при их изменении. Сами SP, как правило, состоят из 200-500 строк, реализующих сложную логику, и 95% логики универсальны, но большинство операторов объединения зависят от страны.
Упрощенная версия в псевдо-SQL выглядит примерно так
ProductTable Schema
Id, Data1, Data2, .... , ProductCodeUK, ProductCodeUSA, ProductJapan
SP1_USA
select Id, Data, Data, LookupUSA.Price As Price from ProductTable
join LookupUSA on ProductTable.ProductCodeUSA = LookupUSA.Code
SP2_UK
select Id, Data, Data, LookupUK.Price As Price from ProductTable
join LookupUK on ProductTable.CodeVersion2 = LookupUK.ProductCodeUK
Обратите внимание, что значения кода часто повторяются в разных странах, поэтому мы не можем легко объединить таблицы поиска.