Für die Tabellenwertfunktionen in SQL Server, wenn man etwas wie folgt ausführt, erstellt es nur die temporäre Tabelle @Table
, genau wie bei den Variablen (in skalarwertigen Funktionen), richtig? Treten Probleme auf, wenn viele solcher Aussagen ausgeführt werden?Tabellenwertfunktion in SQL Server; Die Tabelle in der Funktion ist temporär?
CREATE FUNCTION some_function
(@some_var varchar(20), @someDate date)
RETURNS @Table Table (id int, name varchar(50), DoB date)
AS
BEGIN
INSERT INTO @Table
SELECT id, Name, CAST(DoB as date)
FROM tblEmployees
RETURN
END
Dies ist keine temporäre Tabelle, es ist nur eine Variable. In diesem Beispiel brauchen Sie es nicht einmal. Sie können eine Inline-Funktion erstellen und die Ergebnisse direkt zurückgeben. Dies würde es dem Optimierer ermöglichen, einen besseren Plan zu erstellen * und * das Kopieren der Daten in die Variable zuerst zu speichern, bevor sie zurückgegeben wird. –
Bitte lesen Sie diese Antwort auf DBA.SE ... http: //dba.stackexchange.com/questions/16385/ whats-the-difference-zwischen-a-temp-table-und-table-variable-in-sql-server – TheGameiswar
Sehen Sie hier https://blogs.msdn.microsoft.com/naga/2015/05/10/sql -server-performance-tuning-table-variable-vs-temporary-tables/ –