Классика баз данных - статьи

       

Заключение: процессор и правила


Мы построили расширяемую систему Query Rewrite для Starburst и показали, что она может на порядки повысить эффективность выполнения запросов. Раньше педлагались другие преобразования запросов ([Kim82, GW87, Day87, Anf89]), но в нашей работе многие из этих преобразований обобщаются, и это первая (насколько нам известно) реализация системы, в которой схемы преобразований органически включаются в полную СУБД. Мы потратили значительные усилия на разработку системы, направленную на решение проблем, которые стоят перед полными исследовательскими прототипами и промышленными РСУБД, особенно при обработке сложных запросов и запросов, ассоциированных со сложными объектами [LLPS91]. Возможности нашей системы Query Rewrite значительно превосходят возможности современных РСУБД, включая коммерческие системы.

В преобразованиях запросов, представленных в этой статье, мы обобщаем предыдущие работы по корректной обработке дубликатов и поэтому можем гарантировать слияние конъюнктов, представляющих собой подзапросы с кванторами существования. Кроме того, мы преобразуем к подзапросам ряд операций (INTERSECT, EXCEPT), позволяя применять обширный набор методов соединения для выполнения операций над множествами. Хотя это достаточно просто, ранее такие преобразования не производились.

Кажется логичным наше решение разработать процессор запросов. Мы столкнулись с несколькими часто упоминаемыми проблемами систем правил (недетерминированность результата, сложность понимания исполнения системы, слабая производительность и т.д.) и воспользовались врожденными преимуществами системы правил (простота расширяемости, отстраненность программиста правил от потока управления и т.д.). Расширяемость системы Query Rewrite является ключевой характеристикой системы – она позволяет добавлять новую функциональность как в язык запросов, так и в используемую технологию (например, более быструю и дешевую память), и также должна позволить оптимизаторам планов стать «умнее», чтобы избегать недостатков, которые можно обнаружить только после введения системы в производственный режим [Pir89, HCL+90]. Наша расширяемая система Query Rewrite направлена на решение всех этих проблем.



Содержание  Назад  Вперед