berechnete Spalte in Tabelle vs. Spalte fest mit Werten belegen

15/10/2009 - 08:17 von Christa Kurschat | Report spam
Hallo NG,

ich bràuchte mal einen Rat zur Performance.

Ich habe eine Tabelle mit derzeit ca. 60 Mio DS.
Auf diese Tabelle sitzt ein View, in dem ein zusàtzliches Feld erzeugt wird.

Select ...,
case when Feldx = 'J' then 1 else 0 end as neuesFeld
from Tabelle

Dieser View ist Basis für einen Cube im AS. Da wir öfter Timeout-Probleme
haben, möchte ich alle Views durch die Tabellen ersetzen.
In dem geschilderten Fall müßte ich "neuesFeld" in die Tabelle aufnehmen.

Ein Update über 60 Mio DS ist ja nicht so ganz ohne, außerdem müßte das
SSIS-Paket angepaßt werden, wàre also höherer Aufwand.
Vorteil wàre die bessere Performance bei der AS-Aufbereitung.

Wàre die Performance genau so gut, wenn ich statt das Feld fest zu belegen
dieses nur als berechnetes Feld anlegen würde? Die Berechnung wàre genau die
gleiche Case-Struktur wie im View.
Der Aufwand wàre sehr viel geringer.

Gruß
Christa
Access-FAQ: http://www.donkarl.com
SQL-Server-FAQ: www.sqlfaq.de
InsideSql: www.insidesql.org
 

Lesen sie die antworten

#1 Christoph Muthmann
16/10/2009 - 11:43 | Warnen spam
Christa Kurschat wrote:
Hallo NG,

ich bràuchte mal einen Rat zur Performance.

Ich habe eine Tabelle mit derzeit ca. 60 Mio DS.
Auf diese Tabelle sitzt ein View, in dem ein zusàtzliches Feld
erzeugt wird.
Select ...,
case when Feldx = 'J' then 1 else 0 end as neuesFeld
from Tabelle

Dieser View ist Basis für einen Cube im AS. Da wir öfter
Timeout-Probleme haben, möchte ich alle Views durch die Tabellen
ersetzen. In dem geschilderten Fall müßte ich "neuesFeld" in die Tabelle
aufnehmen.
Ein Update über 60 Mio DS ist ja nicht so ganz ohne, außerdem müßte
das SSIS-Paket angepaßt werden, wàre also höherer Aufwand.
Vorteil wàre die bessere Performance bei der AS-Aufbereitung.

Wàre die Performance genau so gut, wenn ich statt das Feld fest zu
belegen dieses nur als berechnetes Feld anlegen würde? Die Berechnung
wàre genau die gleiche Case-Struktur wie im View.
Der Aufwand wàre sehr viel geringer.



Hallo Christa,
ich kann da leider auch nur spekulieren.
Mein Gefühl sagt mir, falls Du in der View nichts anderes tust, als das Feld
zu berechnen, wird eine berechnete Spalte in einer Tabelle auch nicht
schneller sein.

Aber das alleine kann doch nicht zu Timeout-Problemen führen, oder?

Einen schönen Tag noch,
Christoph
Microsoft SQL Server MVP
http://www.insidesql.org

Ähnliche fragen