Ограничения целостности — это хорошо, но бесперебойная работа всё же куда важнее. Ограничения обязательно нужны на девелоперской-тестовой базах (чтобы ловить ошибки разработчиков), но на боевой их срабатывание само по себе — инцидент, случающийся не каждый год (если, конечно, никто не пытается на живую отлаживать на ней заливку данных итп).
Поэтому если есть подозрения — имхо лучше отключить FK и не рисковать.
Для того, чтобы не пропустить ошибку, имхо уместно применить другой подход, я применял его однажды, работая с базой вообще без FK: я повесил туда набор ночных job-ов, делавших select-ы на "неправильные записи" и возвращавшие список ошибок. Это позволяло эффективно, без просадок в производительности контролировать целостность, не трогать старые записи (там, где их было уже нереально исправить) и оперативно находить и устранять источники новых проблем.