С выражением Common Table Expression и CREATE VIEW - PullRequest
3 голосов
/ 04 августа 2009

У меня есть несколько запросов, которые используют предложение WITH или Common Table Expression, с оператором UNION ALL для повторения через таблицу с древовидной структурой в SQL-сервере, как описано здесь . Увидел ли бы я разницу в производительности, если бы СОЗДАЛ тот же самый VIEW вместо того, чтобы включать его в предложение WITH и генерировать его каждый раз, когда я запускаю запрос? Будет ли вообще хорошей практикой создавать СОЗДАНИЕ, поскольку оно используется в нескольких запросах?

1 Ответ

4 голосов
/ 04 августа 2009

Вы видите Общее табличное выражение , а не Представление . Если вы делаете рекурсию , вам нужно придерживаться CTE и не пытаться свернуть это в представление.

Представления в MS SQL не дают вам никаких преимуществ в производительности, если вы не создаете для них кластерные индексы . Судя по звукам вашего вопроса, это не так. Скорее всего, вам лучше будет инкапсулировать ваш CTE внутри хранимой процедуры .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...