Каково различие между созданием Уникального индекса как “индекс” или как “ограничение” в SQL Server?

Разница в производительности происходит от неявного использования оператора индексации и доступа к y -ому значению x -го «столбца» array. После назначения a (a = array[x][y]) нет необходимости выполнять эти операции для получения действительного значения в array[x][y] - оно легко доступно в a.

Точные различия в производительности зависят от реализации. В случае NumPy производительность array[x][y] была бы намного лучше, чем в случае списков собственных питонов, благодаря реализации, точно настроенной для массивов однородного типа и непрерывного блока выделения памяти.

Я рекомендую вам рассчитать время фактического использования , чтобы увидеть влияние в вашем конкретном случае.

13
задан Daniel Magliola 23 October 2008 в 19:47
поделиться

3 ответа

A UNIQUE ограничение является частью стандарта ISO/ANSI SQL, тогда как индексы - то, не потому что Стандарт является агностиком реализации. SQL Server, вместе с большей частью SQL DBMSs, будет использовать индекс для реализации a UNIQUE ограничение.

Возможно, использование UNIQUE вместо того, чтобы индексировать в сценарии SQL является немного более портативным, но поскольку всегда собственный синтаксис не должен быть исключен, если он обеспечивает возможности для оптимизации и т.д.

8
ответ дан 1 December 2019 в 23:49
поделиться

SQL Server создаст индекс для реализации ограничений UNIQUE. Вы видите ссылку на уникальный индекс, который используется для осуществления ограничений на уникальность данных в представлении sys.key_constraints (в 2005 — извините, я не знаю эквивалент 2000 года). Но обе версии будут использовать индекс при запросах.

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

Обе опции позволят, Вы для "игнорирования делаете дубликаты ключа" на существующих данных, но оба повысят ошибку, при попытке вставить новое значение, которое копирует существующий.

5
ответ дан 1 December 2019 в 23:49
поделиться

Нет никакого практического различия между ограничением на уникальность данных и уникальным индексом кроме того, что ограничение на уникальность данных также перечислено как ограничительный объект в базе данных.

2
ответ дан 1 December 2019 в 23:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: