В этом превосходном SO-вопросеобсуждались различия между CTE
и подзапросами
.
Я хотел бы конкретно спросить:
В каких обстоятельствах каждое из следующих действий более эффективно/быстрее?
Традиционно я использовал множество временных таблиц
при разработке хранимых процедур
- поскольку они кажутся более читаемыми, чем множество переплетенных подзапросов.
Нерекурсивные CTE
очень хорошо инкапсулируют наборы данных и очень удобочитаемы, но есть ли особые обстоятельства, при которых можно сказать, что они всегда будут работать лучше? или это тот случай, когда приходится постоянно возиться с различными вариантами, чтобы найти наиболее эффективное решение?
РЕДАКТИРОВАТЬ
Недавно мне сказали, что с точки зрения эффективности временные таблицы являются хорошим первым выбором, поскольку они имеют связанную гистограмму, т.е. статистику.