Вы не предоставили достаточно информации о проблемах, которые пытаетесь решить с помощью базы данных.
Мне кажется, что проблема не в внешних ключах, а в том, что они не статичны и / или выкаскадное удаление.
Для вставок может потребоваться нормализация и поэтапная загрузка, чтобы строки первичного ключа загружались перед строками с внешними ключами, которые на них ссылаются, поэтому там немного больше работы.Удаление (для очистки диапазона) иногда может быть улучшено с помощью разделов или запланированных пакетов, с программным удалением во время производства.
Итак, вопрос в том, почему ваши данные так часто меняются?Каков ваш конкретный сценарий использования?И нормализованная модель хороша для этого.Обычно в средах OLTP данные обновляются и обновляются.INSERT не часто делают много блокировок, а DELETE блокирует операции только с теми же объектами данных, которые участвуют в удалении (так что вы хотите, чтобы они блокировались).В среде OLAP, где данные регулярно загружаются и выгружаются для анализа, реляционная модель не всегда так хороша, и поэтому размерная модель может быть более подходящей, поскольку загрузка / выгрузка факта обычно не будет блокироваться между различными периодами времени.