Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jaka jest różnica między TEMPORARY TABLE a TABLE VARIABLE w SQL 2008?

Tabele tymczasowe są jak zwykłe tabele w większości cech, z wyjątkiem tego, że przechodzą do TempDB zamiast do bieżącej bazy danych i znikają po ograniczonym zakresie (w zależności od tego, czy są to tabele temp oparte na sesji, czy globalne. Ale wszystkie zmiany danych w tabelach Temp są zalogowany do dziennika transakcji, ze wszystkimi konsekwencjami wydajności, które to pociąga za sobą. Otoh, możesz również dodać tyle indeksów lub widoków, lub wyzwalaczy, lub cokolwiek innego, co chcesz, do tabeli tymczasowej dokładnie tak, jak do zwykłej tabeli.

Zmienne tabeli są rodzajem tabeli skrótów w pamięci (używają również tymczasowej bazy danych). Zmiany w nich nie są rejestrowane (poprawia to wydajność). Ale możesz uzyskać dla nich tylko jeden indeks (ponieważ indeksów nie można utworzyć po początkowej deklaracji deklaracji, jedyny indeks, który możesz utworzyć dla zmiennej tabeli, to ten, który może być zawarty w początkowej deklaracji zmiennej tabeli...

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

Ze względu na te cechy, tabele tymczasowe są lepszym wyborem dla dużych tabel (szerokich i z wieloma wierszami) i/lub takich, które będą podlegać więcej niż jednemu wzorcowi dostępu w ciągu swojego życia, podczas gdy zmienne tabeli są najlepsze, gdy potrzebujesz bardzo wąskiej tabeli ( klucze tylko tabela lub klucz z tylko jedną kolumną danych), do którego zawsze będzie miał dostęp ten indeksowany klucz...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Instrukcja SQL UPDATE do przełączania dwóch wartości w dwóch wierszach

  2. Dlaczego typ DATETIME SQL Server oszczędza czas w taktach 1/300 sekundy?

  3. SQL Server 2016:Importuj dane

  4. Tutorial z SQL (DDL, DML) na przykładzie dialektu MS SQL Server

  5. Zamiana wartości null na zero