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

SQL 2005 CTE срещу TEMP таблица Производителност, когато се използва в съединения на други таблици

CTE е просто псевдоним за заявката.

Може (или не) да се стартира отново всеки път, когато се използва.

Няма чист начин за налагане на CTE материализиране в SQL Server (като /*+ MATERIALIZE */ на Oracle ), и трябва да правите мръсни трикове като този:

CTE може да подобри производителността, ако се използва в планове, изискващи само една оценка (като HASH JOIN , MERGE JOIN и т.н.).

В тези сценарии хеш-таблицата ще бъде изградена направо от CTE , докато използването на временната таблица ще изисква оценка на CTE , изтегляне на резултатите във временната таблица и четене на временната таблица отново.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:Msg 102, ниво 15, състояние 1, ред 2 Неправилен синтаксис близо до '='

  2. Скрипт за унищожаване на всички връзки към база данни (Повече от RESTRICTED_USER ROLLBACK)

  3. Разделяне на пресичане на диапазон от дати в SQL

  4. Програмно отделете база данни на SQL Server, за да копирате mdf файл

  5. Има ли някакви недостатъци при използването на NewSequentialID?