Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie kann ich ein einfaches berechnetes Feld in SQL Server einrichten?

ALTER TABLE ACCOUNT_TABLE 
ADD ACCT_NUMBER AS MAIN_ACCT+'-'+GROUP_ACCT+'-'+SUB_ACCT PERSISTED

Dies behält eine berechnete Spalte bei und kann bei Auswahlen eine bessere Leistung erbringen als eine Berechnung in der Ansicht oder UDF, wenn Sie eine große Anzahl von Datensätzen haben (sobald die anfängliche Erstellung der Spalte erfolgt ist, was schmerzhaft langsam sein kann und wahrscheinlich während Zeiten mit geringer Nutzung erfolgen sollte ). Dadurch werden Einfügungen und Aktualisierungen verlangsamt. Normalerweise finde ich, dass ein langsames Einfügen oder Aktualisieren von Benutzern besser toleriert wird als eine Verzögerung bei einer Auswahl, es sei denn, Sie haben Sperrprobleme.

Die beste Methode dafür hängt stark von Ihrer Nutzung und der von Ihnen benötigten Leistung ab. Wenn Sie nicht viele Datensätze haben oder wenn die berechnete Spalte nicht so häufig aufgerufen wird, möchten Sie möglicherweise keine persistente Spalte, aber wenn Sie häufig Berichte mit allen Datensätzen für das Jahr oder andere große Datensätze ausführen Daten, stellen Sie möglicherweise fest, dass die beibehaltene berechnete Spalte besser für Sie geeignet ist. Wie bei jeder Aufgabe dieser Art ist der einzige Weg herauszufinden, was in Ihrer Situation am besten funktioniert, ein Test.