SIGMOD '91 Proceedings of the 1991 ACM SIGMOD international conference on Management of data
Partially preemptible hash joins
SIGMOD '93 Proceedings of the 1993 ACM SIGMOD international conference on Management of data
Accurate modeling of the hybrid hash join algorithm
SIGMETRICS '94 Proceedings of the 1994 ACM SIGMETRICS conference on Measurement and modeling of computer systems
Data warehousing and OLAP for decision support
SIGMOD '97 Proceedings of the 1997 ACM SIGMOD international conference on Management of data
Memory allocation strategies for complex decision support queries
Proceedings of the seventh international conference on Information and knowledge management
Space/time trade-offs in hash coding with allowable errors
Communications of the ACM
Implementation techniques for main memory database systems
SIGMOD '84 Proceedings of the 1984 ACM SIGMOD international conference on Management of data
Parallel Query Scheduling and Optimization with Time- and Space-Shared Resources
VLDB '97 Proceedings of the 23rd International Conference on Very Large Data Bases
Hash Joins and Hash Teams in Microsoft SQL Server
VLDB '98 Proceedings of the 24rd International Conference on Very Large Data Bases
An Adaptive Hash Join Algorithm for Multiuser Environments
VLDB '90 Proceedings of the 16th International Conference on Very Large Data Bases
Memory-Contention Responsive Hash Joins
VLDB '94 Proceedings of the 20th International Conference on Very Large Data Bases
Adaptive self-tuning memory in DB2
VLDB '06 Proceedings of the 32nd international conference on Very large data bases
SQL memory management in Oracle9i
VLDB '02 Proceedings of the 28th international conference on Very Large Data Bases
Hi-index | 0.00 |
Efficiency of memory-intensive operations is a key factor in obtaining good performance during multi-join query processing. The pipelined execution of these queries forces the operations in the query plan to be processed concurrently. Making a wrong decision regarding the amount of memory allocated for such operations can have a drastic impact on the response time. However, some of the execution algorithms used at run time interrupt the pipelined execution, ensuring that some operations are never executed concurrently. Because of this, it is essential to explore new approaches in order to improve memory exploitation. In this paper, we address the problem of memory allocation for multiple concurrent operations in a query execution plan. First, we study the dynamic needs for memory during the execution time, and define when two operations coexist. Then, we propose a post-optimization phase, which (i) identifies the operations that are concurrently executed at run time and (ii) costs different memory allocation combinations to find a near optimal solution for any type of query execution plan. We have implemented our techniques in the IBM®DB2® Universal Database" (DB2 UDB) showing that they achieve significant execution time improvements compared with previous approaches, especially for multi-join queries accessing large data volumes.