Вычисляемый столбец SQL Server 2005 сохраняется
-
06-09-2019 - |
Вопрос
У меня есть несколько вычисляемых столбцов в таблице, и мне нужно знать, следует ли мне установить для параметра Is Persisted значение true.Каковы преимущества?Есть ли недостатки?Что означает «Сохраняется»?
Решение
«Сохраняющийся» в данном контексте означает «сохраняемый физически».
Это означает, что вычисленное значение вычисляется один раз при вставке (и при обновлении) и сохраняется на диске, поэтому его не нужно вычислять заново при каждом выборе.
Persisted также приводит к снижению производительности при вставке и обновлении, поскольку столбец должен быть вычислен, но увеличивает производительность при последующих запросах выбора.
Итак, какой подход следует использовать, зависит от вашего шаблона использования:если вы обновляете нечасто, но много запрашиваете, вам следует установить persisted = true.
Если вы часто обновляете данные или вас не волнует производительность извлечения, вам следует рассмотреть возможность установки persisted = false
Другие советы
Еще одна вещь, не упомянутая в других ответах:вычисляемый столбец должен быть СОХРАНЕН, чтобы его можно было использовать из ВНЕШНИХ КЛЮЧЕЙ.