# How DuckDB Runs Recursive CTEs Faster

DevFeed: [How DuckDB Runs Recursive CTEs Faster](<https://devfeed.tech/articles/how-duckdb-runs-recursive-ctes-faster-4805.md>)

Original publisher: [Read original article](<https://duckdb.org/2026/08/25/how-duckdb-runs-recursive-ctes-faster.html>)

Author: Denis Hirn

Published: 2026-08-25T00:00:00Z

Content type: article

Language: en

Sources: [DuckDB](<https://devfeed.tech/sources/duckdb.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [Databases](<https://devfeed.tech/topics/databases.md>)

Tags: [deep-dive](<https://devfeed.tech/tags/deep-dive.md>), [duckdb](<https://devfeed.tech/tags/duckdb.md>), [performance](<https://devfeed.tech/tags/performance.md>), [sql](<https://devfeed.tech/tags/sql.md>)

## AI overview

The article explains how DuckDB's upcoming v2.0 improves recursive CTE performance by retaining reusable state across iterations, selecting execution modes based on frontier size and physical work, and probing keyed state directly. A reachability benchmark reports a median runtime reduction from 4.051 seconds in DuckDB v1.5.5 to 0.095 seconds in the v2.0 preview, a 42.6x speedup without SQL changes.

## Source excerpt

DuckDB's recursive CTE engine now treats recursion as one long-lived computation: it retains eligible epoch-invariant state, chooses execution modes from exact frontier cardinalities and physical work, probes keyed state directly and gives `USING KEY ... UNION` changed-key semantics.