This website is under development. If you come accross any issues, please report them to Konstantinos Kanellis (kkanellis@cs.wisc.edu) or Yannis Chronis (chronis@google.com).

Compiling PL/SQL Away

Authors:
Christian Duta, Denis Hirn, Torsten Grust
Abstract

“PL/SQL functions are slow,” is common developer wisdom that derives from the tension between set-oriented SQL evaluation and statement-by-statement PL/SQL interpretation. We pursue the radical approach of compiling PL/SQL away, turning interpreted functions into regular subqueries that can then be efficiently evaluated together with their embracing SQL query, avoiding any PL/SQL ↔ SQL context switches. Input PL/SQL functions may exhibit arbitrary control flow. Iteration, in particular, is compiled into SQLlevel recursion. RDBMSs across the board reward this compilation effort with significant run time savings that render established developer lore questionable.