View oder Table-Valued Function

30/06/2009 - 11:37 von Hermann | Report spam
(Huh zweimal hintereinander.)

Ich bins wieder. Hab noch eine Frage für euch. Wenn ich mich zwischen
einem View und einer Table-Valued Function entscheiden muss, was würdet
ihr mir empfehlen? Was ist performater? Und gibt es irgendwo
Einschrànkungen?

LG Hermann
 

Lesen sie die antworten

#1 Elmar Boye
30/06/2009 - 13:27 | Warnen spam
Hallo Hermann,

Hermann schrieb:
Wenn ich mich zwischen
einem View und einer Table-Valued Function entscheiden muss, was würdet
ihr mir empfehlen?



Eine pauschale Empfehlung dafür gibt es nicht.
Grundsàtzlich ist eine Sicht am ehesten noch vergleichbar
mit einer Inline-Funktion:

http://msdn.microsoft.com/de-de/lib...89294.aspx
Wobei Inline Funktionen wie eine Sicht nur aus einer Anweisung
bestehen dürfen, die dann direkt in den SQL Plan eingebaut wird.
IM Gegensatz zu einer Sicht sind dort auch Parameter möglich.

Tabellenwertfunktionen erlauben wiederum mehrere Anweisungen
und eine freie Definition der Ausgabe.

Was ist performater?



auch làßt sich im Grenzfall nur durch Tests bestimmen.
Tabellenwertfunktionen sind meist nur für geringere
Ergebnismengenn geeignet. Denn nachteilig ist, dass
die Ausgabe über keine Indizes und Statistiken verfügt,
was zu ineffizienten Plànen führen kann.

Und gibt es irgendwo Einschrànkungen?



Siehe Dokumentation.
http://msdn.microsoft.com/de-de/lib...89593.aspx

Ab SQL Server 2005 sollte man auch Tabellenausdrücke -
Common Table Expressions (CTE) - berücksichtigen,
die für die (hàufigen) Fàlle nützlich sind, wo ein
Ausdruck nur an einer Stelle benötigt wird.
Sie sind àhnlich einer Inline Funktion, bieten aber
zusàtzliche Möglichkeiten:
http://msdn.microsoft.com/de-de/lib...75972.aspx

Gruß Elmar

Ähnliche fragen