Вычисляемый столбец SQL Server 2005 сохраняется - PullRequest
26 голосов
/ 27 мая 2009

У меня есть несколько вычисляемых столбцов в таблице, и мне нужно знать, должен ли я установить Is Persisted на true. Каковы преимущества? Есть ли недостатки? Что означает «сохраняется»?

Ответы [ 2 ]

43 голосов
/ 27 мая 2009

«Постоянный» означает «физически сохраненный» в этом контексте.

Это означает, что вычисленное значение вычисляется один раз при вставке (и при обновлении) и сохраняется на диске, поэтому его не нужно вычислять повторно при каждом выборе.

Сохранение также приводит к снижению производительности при вставке и обновлении, поскольку столбец должен быть вычислен, но повысит производительность при последующих запросах выбора.

Итак, это зависит от вашего шаблона использования, который следует придерживаться: если вы обновляете нечасто, но делаете много запросов, вам следует установить persisted = true.

Если вы часто обновляете или не заботитесь о производительности поиска, вам следует рассмотреть возможность установки постоянного значения = false

3 голосов
/ 08 марта 2016

Еще одна вещь, не упомянутая в других ответах: вычисляемый столбец должен быть PERSISTED, чтобы его можно было использовать из FOREIGN KEY.

...