Optimizing loops in database programming languages

Daniel F. Lieuwen, David J. DeWitt · 1992

Database programming languages like O 2 , E, and O++ include the ability to iterate through a set. Nested iterators can be used to express joins. We describe compile-time optimizations of such programming constructs that are similar to relational transformations like join reordering. Ensuring that the program's semantics are preserved during transformation requires paying careful attention to the flow of values through the program. This paper presents conditions under which such transformations can be applied and analyzes the I/O performance of several different classes of program fragments before and after applying transformations. The analysis shows that the transformations can significantly reduce the number of I/Os performed, even when both the initial and transformed programs use the same join method. 1 Introduction Many researchers believe that an object-oriented database system (OODBS) must be computationally complete--- that programmers and database administrators must have a...

Read the paper · More papers on PaperTik