2009-05-27 38 views
23

テーブルに計算された列があり、Is Persistedをtrueに設定する必要があるかどうかを知る必要があります。利点は何ですか?不利な点はありますか? 「持続している」とはどういう意味ですか?SQL Server 2005の計算された列が保持される

答えて

40

「持続」は、この文脈では「物理的に格納されている」ことを意味します。

これは、計算された値が挿入時(および更新時)に1回計算され、ディスクに保存されるため、選択ごとに計算される必要はありません。

Persistedは、列を計算する必要があるため、後続の選択クエリでパフォーマンスが向上するため、挿入と更新でパフォーマンスが低下します。

したがって、それはあなたの使用パターンに依存します。頻繁に更新するのではなく、多くのクエリを実行する場合は、persisted = trueを設定する必要があります。

あなたが頻繁に更新する場合は、検索性能を気にしない場合、または、あなたが考慮しなければならない設定が持続= falseを

3

他の回答に記載されていないもう一つ:計算列はFOREIGNから使用できるように永続化する必要がありますキー。

関連する問題