sql >> Database teknologi >  >> RDS >> Sqlserver

Hvad er forskellen mellem TEMPORARY TABLE og TABLE VARIABLE i SQL 2008?

Midlertidige tabeller er som almindelige tabeller i de fleste karakteristika, bortset fra at de går ind i TempDB i stedet for den nuværende database, og de forsvinder efter begrænset omfang, (afhængigt af om de er sessionsbaserede eller globale Temp-tabeller. Men alle ændringer af data i Temp-tabeller er logget på transaktionsloggen, med alle de præstationsimplikationer, det medfører. otoh, du kan også tilføje lige så mange indekser eller visninger, eller triggere, eller hvad du nu ellers vil have til en midlertidig tabel, præcis som du ville til en almindelig tabel.

Tabelvariabler er en slags genvejstabel i hukommelsen (de bruger også temp DB). Ændringer til dem logges ikke (dette forbedrer ydeevnen). Men du kan kun få ét indeks på dem, (fordi indekser ikke kan oprettes efter den indledende erklæringserklæring, er det eneste indeks, du kan oprette på en tabelvariabel, det, der kan inkluderes i den indledende tabelvariabelerklæring...

   Declare @Tab Table (myKey integer Primary Key Not Null, data varchar(20)) 

På grund af disse egenskaber er temp-tabeller et bedre valg til store borde (brede og med mange rækker), og/eller som vil gennemgå mere end ét adgangsmønster i løbet af deres levetid, mens tabelvariabler er bedst, når du har brug for en meget smal tabel ( nøgler kun tabel eller nøgle med kun én datakolonne), som altid vil blive tilgået af den indekserede nøgle...



  1. Beregn nøjagtigheden af ​​et datasæt

  2. Korrekt brug af forbindelser med C# og MySQL

  3. Tilføj kolonne til SQL Server

  4. System.Data.SqlClient.SqlException:Forkert syntaks nær '='