Подтвердить что ты не робот

Вычислительная колонка SQL Server 2005 сохраняется

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

4b9b3361

Ответ 1

"Сохраненный" означает "сохраненный физически" в этом контексте.

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

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

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

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

Ответ 2

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