Bird
0
0

Before PostgreSQL 12, what is a typical impact of using a CTE instead of a subquery on query planning and execution?

easy📝 Conceptual Q1 of 15
PostgreSQL - Common Table Expressions
Before PostgreSQL 12, what is a typical impact of using a CTE instead of a subquery on query planning and execution?
ACTEs allow parallel execution by default, unlike subqueries
BCTEs are always inlined and optimized like subqueries
CCTEs reduce execution time by caching intermediate results automatically
DCTEs act as optimization fences, preventing planner from pushing down filters
Step-by-Step Solution
Solution:
  1. Step 1: Understand CTE behavior pre-PostgreSQL 12

    CTEs act as optimization fences, meaning the planner executes them independently and does not push filters inside.
  2. Step 2: Compare with subqueries

    Subqueries can be inlined and optimized with filter pushdown, often resulting in better performance.
  3. Final Answer:

    CTEs act as optimization fences, preventing planner from pushing down filters -> Option D
  4. Quick Check:

    CTEs block optimization before v12 [OK]
Quick Trick: CTEs block optimization before v12 [OK]
Common Mistakes:
  • Assuming CTEs are always inlined like subqueries
  • Believing CTEs cache results automatically
  • Thinking CTEs enable parallelism by default

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More PostgreSQL Quizzes