Без пруфов, просто информация для размышления.
Foreign Key Constraint при операциях над таблицей в которой есть Constraint , обязывает смотреть и поддерживать консистентность с записями, которые являются ключами. Это 'on Delete', 'on Update'. То есть операции вставки и обновления теряют в скорости.
(хотя мы получаем профит в виде контроля целостности и непротиворечивости данных)- Когда Constraint смотрит на другую базу данных, время на взаимодействие растет сильнее.
- Теряется область видимости согласованности данных на уровне ЯП - части системы могут изолированно работать только с одной БД и не иметь влияния на всю распределенную систему хранения данных. То есть мы имеем механизм контроля согласованности на уровне БД, но на уровне ЯП мы не имеем явных указаний на то, что изменения в нашей модели распространятся на другие БД. Не можем удалить какой-то entity, потому что на него наложен Constraint, а наш контекст не позволяет заглядывать в другую БД.
- Нарушается доступность - отказ одной из БД приводит к падению всех Constraint на рабочих БД.