Frage

Ich habe einige berechnete-Spalten von zwei Typen:

  1. Berechnete Spalten basierend auf Spalten in der aktuellen Tabelle (d Preis * Tax)
  2. Berechnete Spalten auf der Grundlage anderer columnes (d Preis * fn_GetTax (OrderId))

Würden Sie sagen, dass es besser ist, nur diese Spalten in CLR auf dem Client zu verwenden und dann von dem Server die Berechnung und Übertragung von Leistung sparen? Ist es oben in der Art variieren aufgeführt (und andere Typen)?

War es hilfreich?

Lösung

Ich würde versuchen, berechnete Spalten Teil Ihrer SQL-Tabellen zu machen - wenn der Aufwand so tun musste, nicht unverschämt ist

.

Wenn Sie ziemlich einfache Berechnungen haben oder Lookups, oder etwas in diese Richtung - direkt die in der SQL-Tabelle setzen. Auf diese Weise, sie sind verfügbar, auch wenn Sie die Tabelle (n) mit T-SQL oder einem anderen Tool Zugriff auf SQL Server-Datenbank, und sie sind höchstwahrscheinlich eine ganze Menge schnellen abfragen müssen (vor allem, wenn Sie sie machen beharrten) .

Wenn Sie ausführlichere Anforderungen haben, wenn Sie umfangreichen String benötigen, Mathematik oder Datum Manipulation etc., sind Sie wahrscheinlich besser dran, diese Berechnungen in eine .NET-Sprache setzen. Sie können entweder speichern, dass als CLR-Assembly in SQL Server und immer noch die Spalten in SQL Server direkt (wenn eine Wiederverwendung von anderen Teams oder Projekten wahrscheinlich ist), oder Sie können diese in Ihr EF-Modell setzen, wenn Sie wahrscheinlich zu sein der einzige Interesse in diesen berechneten Spalten.

Hope, die ein wenig Licht auf Ihre Frage wirft!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top