Теоретически, да: записи данных должны проверять ограничения.
На практике редко: если не измерено и не доказано иное, вы можете предположить, что это не повлияет на производительность. В подавляющем большинстве случаев проблемы с производительностью возникают из-за других проблем:
- неверный дизайн схемы (отсутствующие индексы, неправильный выбор кластеризованного индекса)
- конфликт (блокировка), опять-таки из-за неправильной схемы (сканирование таблиц гарантирует конфликты блокировок)
- плохой дизайн запроса
На хорошо спроектированной схеме и хороших запросах стоимость ограничений начнет проявляться при очень высокой пропускной способности. Когда это происходит, существуют профилактические меры.
Мой 2c: Никогда пожертвуйте ограничениями на правильность ради некоторых неуловимых целей производительности. В очень редком случае, когда ограничения действительно являются проблемой, есть измерения, чтобы показать, что это так, и, как говорится: если вам нужно спросить, сколько это стоит, вы не можете себе это позволить. Если вам нужно спросить, могут ли ограничения быть проблемой, вы не можете их удалить (без обид).