|
Эта публикация цитируется в 5 научных статьях (всего в 5 статьях)
Динамическая компиляция SQL-запросов для СУБД PostgreSQL
Р. А. Бучацкийa, Е. Ю. Шарыгинab, Л. В. Скворцовb, Р. А. Жуйковa, Д. М. Мельникa, Р. В. Баевc a Институт системного программирования РАН
b Московский государственный университет имени М.В. Ломоносова
c Московский физико-технический институт (государственный университет)
Аннотация:
В последние годы по мере увеличения производительности и роста объема оперативной и внешней памяти производительность СУБД для некоторых классов запросов определяется непосредственно скоростью обработки запросов процессором. Для исполнения SQL-запросов в большинстве современных реляционных СУБД используется модель итераторов (Volcano-модель), которая удобна в реализации в рамках интерпретатора запросов, но сопряжена с существенными накладными расходами при выполнении плана, например, связанными с большим количеством ветвлений, неявными вызовами функций-обработчиков и выполнением лишних проверок, избежать которых довольно сложно при использовании механизма интерпретации. Одно из решений - динамическая компиляция запросов. В рамках данной работы рассматривается метод динамической компиляции запросов с применением альтернативной модели выполнения запроса в СУБД, что подразумевает отказ от используемой в PostgreSQL итеративной Volcano-модели, и его реализация для СУБД PostgreSQL с помощью компиляторной инфраструктуры LLVM. Динамический компилятор запросов реализован в виде расширения к СУБД PostgreSQL и не требует изменения исходного кода СУБД. Результаты проведенного тестирования показывают, что динамическая компиляция запросов с помощью JIT-компилятора LLVM позволяет получить ускорение в несколько раз на тестовом наборе TPC-H.
Ключевые слова:
динамическая компиляция, JIT-компиляция, СУБД, PostgreSQL, LLVM, языки запросов.
Образец цитирования:
Р. А. Бучацкий, Е. Ю. Шарыгин, Л. В. Скворцов, Р. А. Жуйков, Д. М. Мельник, Р. В. Баев, “Динамическая компиляция SQL-запросов для СУБД PostgreSQL”, Труды ИСП РАН, 28:6 (2016), 37–48
Образцы ссылок на эту страницу:
https://www.mathnet.ru/rus/tisp83 https://www.mathnet.ru/rus/tisp/v28/i6/p37
|
Статистика просмотров: |
Страница аннотации: | 344 | PDF полного текста: | 275 | Список литературы: | 24 |
|