SQL Server 2005 быстрее, когда определены отношения таблиц? - PullRequest
2 голосов
/ 30 августа 2009

Я слышал, что SQL быстрее, если определены табличные отношения.

Это правда?

Или, может быть, медленнее, я хотел бы знать.

Ответы [ 2 ]

4 голосов
/ 30 августа 2009

Полагаю, вы говорите о внешних ключах. Это также известно как ссылочная целостность и является одним из типов ограничение . Внешние ключи не единственные виды ограничений - вы также можете иметь уникальные и проверять ограничения. В любом случае, ссылочная целостность немного медленнее для insert с и совсем не быстрее для select с.

Причина в том, что он должен проверить insert ed значения, чтобы убедиться, что они существуют в другой таблице.

Если вы хотите повысить производительность запросов select, вы хотите поместить индексы в столбцы, к которым вы будете присоединяться, и фильтровать их. Однако индексы стоят дорого, так как они замедляют insert с, update с и delete с, потому что индексы должны обновляться каждый раз, когда таблица изменяется таким образом.

Итак, если у вас большой стол insert / update, не добавляйте слишком много индексов. Если ваша таблица преимущественно select, используйте индексы там, где это возможно. Помощник по настройке ядра СУБД также может помочь вам определить эти индексы для некоторых наиболее распространенных запросов.

Убедитесь, что вы используете План выполнения запросов при выполнении запросов ( Ctrl + L в SSMS), чтобы вы могли видеть, что делает SQL Server. Вам нужно как можно больше seek с, так как это означает, что он может использовать индекс наиболее эффективно!

3 голосов
/ 30 августа 2009

SQL не быстрее, если определены табличные отношения.

Индексы повышение производительности; ссылочная целостность (табличные отношения) обеспечивает качество данных в соответствии с требованиями бизнеса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...