Back to papers
The Key to Effective UDF Optimization: Before Inlining, First Perform Outlining
Summary: Argues full UDF inlining can harm optimizer effectiveness and introduces UDF outlining: decompose and deliberately hide unhelpful UDF fragments before selective inlining to produce optimizer-friendly SQL. PRISM implements this, yielding major gains (avg 1.29× DuckDB, 298.73× SQL Server) via improved unnesting, data skipping, and fewer joins.
(summarized by gpt-5-mini on Feb 09 2026)
- Paper ID
- 13773
- Venue
- VLDB
- Year
- 2025
- Pagerank
- 5.3559142e-05
- Overall Rank
- 9,279 | 35.52%
- DOI
-
10.14778/3696435.3696436
Incoming Non-self Citations Over Time
Incoming Citations (Sorted by Pagerank)
Showing 2 of 2 citing papers.
Outgoing Citations (Sorted by Pagerank)
Showing 22 of 22 cited papers.
Citations counted here include only citations to other VLDB/SIGMOD/CIDR/PODS papers in this database.
| Rank |
Cited Paper |
Year |
Venue |
Pagerank |
| 109 |
DuckDB: an Embeddable Analytical Database |
2019 |
SIGMOD |
0.00033336286 |
| 232 |
Morsel-Driven Parallelism: A NUMA-Aware Query Evaluation Framework for the Many-Core Age |
2014 |
SIGMOD |
0.00024053681 |
| 533 |
Orthogonal Optimization of Subqueries and Aggregation |
2001 |
SIGMOD |
0.00017053692 |
| 981 |
Froid: Optimization of Imperative Programs in a Relational Database |
2018 |
VLDB |
0.00012918366 |
| 1,236 |
Rewriting Procedures for Batched Bindings |
2008 |
VLDB |
0.0001161816 |
| 1,357 |
Execution Strategies for SQL Subqueries |
2007 |
SIGMOD |
0.00011155542 |
| 1,734 |
SQL Server Column Store Indexes |
2011 |
SIGMOD |
9.961009e-05 |
| 1,906 |
Procedural Extensions of SQL: Understanding their usage in the wild |
2021 |
VLDB |
9.6022139e-05 |
| 1,936 |
Tuplex: Data Science in Python at Native Code Speed |
2021 |
SIGMOD |
9.5283932e-05 |
| 2,611 |
Magpie: Python at Speed and Scale using Cloud Backends |
2021 |
CIDR |
8.4136949e-05 |
| 2,878 |
Extracting Equivalent SQL from Imperative Code in Database Applications |
2016 |
SIGMOD |
8.0748534e-05 |
| 3,251 |
One WITH RECURSIVE is Worth Many GOTOs |
2021 |
SIGMOD |
7.6674903e-05 |
| 3,899 |
Aggify: Lifting the Curse of Cursor Loops using Custom Aggregates |
2020 |
SIGMOD |
7.0932371e-05 |
| 4,136 |
Designing an Open Framework for Query Optimization and Compilation |
2022 |
VLDB |
6.9412425e-05 |
| 5,233 |
Babelfish: Efficient Execution of Polyglot Queries |
2022 |
VLDB |
6.3762566e-05 |
| 5,690 |
Accelerating Python UDFs in Vectorized Query Execution |
2022 |
CIDR |
6.1856209e-05 |
| 5,932 |
Dear User-Defined Functions, Inlining isn't working out so great for us. Let's try batching to make our relationship work. Sincerely, SQL |
2024 |
CIDR |
6.099142e-05 |
| 6,242 |
YeSQL: “You extend SQL” with Rich and Highly Performant User-Defined Functions in Relational Databases |
2022 |
VLDB |
6.0051076e-05 |
| 6,372 |
Declarative Sub-Operators for Universal Data Processing |
2023 |
VLDB |
5.9617617e-05 |
| 7,171 |
DBridge: Translating Imperative Code to SQL |
2017 |
SIGMOD |
5.7400908e-05 |
| 9,705 |
YeSQL: Rich User-Defined Functions without the Overhead |
2022 |
VLDB |
5.2889576e-05 |
| 9,706 |
Tuplex: Robust, Efficient Analytics When Python Rules |
2019 |
VLDB |
5.2889576e-05 |
Semantically Similar Papers
| Overall Rank |
Paper |
Year |
Venue |
Pagerank |
| 12,324 |
Fast and Dynamic OLAP Exploration Using UDFs |
2009 |
SIGMOD |
5.1725247e-05 |
| 3,914 |
Exploiting Correlations for Expensive Predicate Evaluation |
2015 |
SIGMOD |
7.0851333e-05 |
| 6,019 |
Containerized Execution of UDFs: An Experimental Evaluation |
2022 |
VLDB |
6.0670756e-05 |
| 5,690 |
Accelerating Python UDFs in Vectorized Query Execution |
2022 |
CIDR |
6.1856209e-05 |
| 6,260 |
Functional-Style SQL UDFs With a Capital 'F' |
2020 |
SIGMOD |
5.9995868e-05 |
| 10,469 |
UDFBench: A Tool for Benchmarking UDF Queries on SQL Engines |
2025 |
SIGMOD |
5.1725247e-05 |
| 9,756 |
The UDFBench Benchmark for General-purpose UDF Queries |
2025 |
VLDB |
5.2759752e-05 |
| 8,348 |
Efficient Execution of User-Defined Functions in SQL Queries |
2023 |
VLDB |
5.5026647e-05 |
| 4,200 |
BlackMagic: Automatic Inlining of Scalar UDFs into SQL Queries with Froid |
2019 |
VLDB |
6.9019133e-05 |
| 5,932 |
Dear User-Defined Functions, Inlining isn't working out so great for us. Let's try batching to make our relationship work. Sincerely, SQL |
2024 |
CIDR |
6.099142e-05 |