Journal article
Adding magic to an optimising datalog compiler.
- Abstract:
- The magic-sets transformation is a useful technique for dramatically improving the performance of complex queries, but it has been observed that this transformation can also drastically reduce the performance of some queries. Successful implementations of magic in previous work require integration with the database optimise!' to make appropriate decisions to guide the transformation (the sideways information-passing strategy, or SIPS). This paper reports on the addition of the magic-sets transformation to a fully automatic optimising compiler from Datalog to SQL with no support from the database opti-miser. We present an algorithm for making a good choice of SIPS using heuristics based on the sizes of relations. To achieve this, we define an abstract interpretation of Datalog programs to estimate the sizes of relations in the program. The effectiveness of our technique is evaluated over a substantial set of over a hundred queries, and in the context of the other optimisations performed by our compiler. It is shown that using the SIPS chosen by our algorithm, query performance is often significantly improved, as expected, but more importantly performance is never significantly degraded on queries that cannot benefit from magic. © Copyright 2008 ACM.
Actions
Access Document
- Publisher copy:
- 10.1145/1376616.1376673
Authors
- Publisher:
- ACM
- Journal:
- SIGMOD Conference More from this journal
- Pages:
- 553-566
- Publication date:
- 2008-01-01
- DOI:
- ISSN:
-
0730-8078
- Language:
-
English
- Keywords:
- Pubs id:
-
pubs:328648
- UUID:
-
uuid:0710a132-450a-47b7-a621-94061580acfc
- Local pid:
-
pubs:328648
- Source identifiers:
-
328648
- Deposit date:
-
2013-11-17
- ARK identifier:
Terms of use
- Copyright date:
- 2008
If you are the owner of this record, you can report an update to it here: Report update to this record