Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Каква е разликата между TEMPORARY TABLE и TABLE VARIABLE в SQL 2008?

Временните таблици са като обикновените таблици в повечето характеристики, с изключение на това, че влизат в TempDB вместо в текущата база данни и изчезват след ограничен обхват (в зависимост от това дали са базирани на сесия или глобални временни таблици. Но всички промени в данните във временните таблици са регистрирани в регистрационния файл на транзакциите, с всички последици за производителността, които това включва. ото, можете също да добавите колкото се може повече индекси или изгледи, или тригери, или каквото друго искате към временна таблица, точно както бихте направили към обикновена таблица.

Променливите на таблицата са вид бърза таблица в паметта (те също използват временна DB). Промените в тях не се регистрират (това подобрява производителността). Но можете да получите само един индекс върху тях (тъй като индексите не могат да бъдат създадени след първоначалната декларация, единственият индекс, който можете да създадете върху променлива на таблица, е този, който може да бъде включен в първоначалната декларация на променлива на таблица...

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

Поради тези характеристики временните таблици са по-добър избор за големи маси (широки и с много редове) и/или които ще претърпят повече от един модел на достъп през целия си живот, докато променливите на таблицата са най-добри, когато имате нужда от много тясна таблица ( таблица само с ключове или ключ само с една колона с данни), който винаги ще бъде достъпен от този индексиран ключ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. RAISERROR – Как да различим с SqlException?

  2. PHP 5.3 не разпознава Native Client за свързване с MS SQL

  3. SQl сървър Трябва да коригирам грешката за изтичане на времето за изчакване. Периодът на изчакване изтече

  4. LINQ към SQL:Твърде много използване на процесора:Какво се случва, когато има няколко потребители

  5. Защо получавам тези различни резултати от две SQL заявки?