CTE
е просто псевдоним за заявката.
Може (или не) да се стартира отново всеки път, когато се използва.
Няма чист начин за налагане на CTE
материализиране в SQL Server
(като /*+ MATERIALIZE */
на Oracle ), и трябва да правите мръсни трикове като този:
CTE
може да подобри производителността, ако се използва в планове, изискващи само една оценка (като HASH JOIN
, MERGE JOIN
и т.н.).
В тези сценарии хеш-таблицата ще бъде изградена направо от CTE
, докато използването на временната таблица ще изисква оценка на CTE
, изтегляне на резултатите във временната таблица и четене на временната таблица отново.