Window Function Optimization: Co-Evaluation and Other Techniques
Daniel Lindner, Felix Naumann, Alberto Lerner
Abstract
Window functions are among the most expressive features of modern SQL. Surprisingly, relatively little has been written about their optimization. Some techniques exist, such as pushing predicates through a window under ideal conditions, but known optimizations no longer apply when those conditions are even slightly unmet. We show that these limitations are not fundamental, but persist because a reasoning framework for window function optimization has been missing. We provide such a framework, introducing techniques we call Frame Analysis, Partition Analysis, and a new execution strategy called Co-Evaluation. These clarify when and how optimizations can be applied. Co-Evaluation, in particular, allows early evaluation of predicates even when they depend on the window function's result. We present each technique and organize the results as a table of algebraic equivalences for window functions. We test these optimizations in an open-source engine, where they never hurt performance and make certain common queries up to 40.7 times faster, with larger tables yielding larger gains.
Create a lesson
Related papers
Distribution-Aware Distributed Database Testing (Extended Version)
Zhou Zhou, Si Liu, Hengfeng Wei et al.
Linking Speakers of the German Parliament to Wikidata: Scope and Coverage of Metadata
Thomas Haider, Arne Cypionka, Maximilian Teich
How Can We Shrink the Family of Test Databases? Query Containment with Nulls and Comparisons
Helen Sternbach, Sara Cohen
TEAR: Table Extraction with Attribute Recommendation from Texts via Large Language Models
Tong Li, Shuye Ding, Jiachuan Wang et al.
Fast Label-Filtering Approximate Nearest Neighbor Search via Progressive Label Set Stratification
Ziqi Wang, Jingzhe Zhang, Shuo Shen et al.
FastPair: GPU-Optimized String Decoding
Joseph Isaacs, Francesco Gargiulo, Peter Boncz et al.