Как оператор WITH хранит официальный набор документов для запроса Select?

Рассмотрите следующий оператор SQL (SQL Server 2008):

WITH MyResult AS
(
  SELECT 
    Name,
    Row_ID AS ORD
  FROM Person Where Gender = @Gender
)
SELECT *
FROM MyResult
WHERE ORD > 5

MyResult хранится во временной таблице в tempdb? Или это делает что-то еще?

Мы оптимизируем некоторые запросы и были бы lke для лучше понимания операторов WITH (внутренне), чтобы помочь измерить производительность и т.д.

Спасибо

1
задан Russell 24 June 2010 в 08:50
поделиться

1 ответ

Нет, согласно этой статье MSDN

... CTE - это конструкция на уровне языка. конструкция - это означает, что SQL Server не создает внутренние временные или виртуальные таблицы...

А также, как упоминается здесь:

Общее табличное выражение (CTE) может быть можно рассматривать как временный набор результатов который определяется в пределах выполнения в рамках выполнения одного SELECT, INSERT, UPDATE, DELETE или CREATE VIEW оператора. CTE похож на производной таблице, поскольку она не хранится как объект и существует только в течение время выполнения запроса.

2
ответ дан 2 September 2019 в 23:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: