2009-05-27 8 views
23

ich in einer Tabelle einige berechnete Spalten haben und müssen wissen, ob ich Ist Persisted auf true gesetzt ist. Was sind die Vorteile? Gibt es irgendwelche Nachteile? Was bedeutet "wird beibehalten"?SQL Server 2005 Berechnete Spalte Persisted

Antwort

40

"Persisted" bedeutet "gespeichert physisch" in diesem Zusammenhang.

Es bedeutet, dass der berechnete Wert einmal auf Einsatz berechnet wird (und auf Updates) und auf der Disc gespeichert, es muss so nicht noch einmal auf jeder Auswahl berechnet werden.

Persisted verursacht auch eine Leistungseinbuße auf Einsatz und Updates, da die Spalte berechnet werden muss, aber die Leistung bei zukünftigen Auswahlabfragen erhöhen.

Also, es auf Ihrem Nutzungsmuster abhängt, die folgen Ansatz: Wenn Sie selten aktualisiert werden, aber eine Menge Abfrage, sollten Sie = true gesetzt anhielt.

Wenn Sie häufig aktualisieren, oder wenn Sie nicht über Auslagerleistung kümmern, sollten Sie Einstellung beibehalten = false

3

Eine weitere Sache, die nicht in anderen Antworten erwähnt: eine berechnete Spalte muss beibehalten wird aus dem Ausland nutzbar zu sein Schlüssel.