×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

3.15.1. Что такое компиляция JIT?

3.15.1.1. Операции, ускоряемые JIT
3.15.1.2. Встраивание (инлайнинг)
3.15.1.3. Оптимизация

Компиляция Just-in-Time (JIT) — это процесс преобразования некоторой формы интерпретируемого выполнения программы в нативную программу, выполняемый во время выполнения. Например, вместо использования универсального кода, способного вычислять произвольные SQL-выражения для вычисления конкретного SQL-предиката вроде WHERE a.col = 3, можно сгенерировать функцию, специфичную для этого выражения, которая может выполняться нативно процессором, что даст прирост производительности.

Digital Q.DataBase имеет встроенную поддержку выполнения компиляции JIT с использованием LLVM.

Подробнее см. src/backend/jit/README.

3.15.1.1. Операции, ускоряемые JIT #

В настоящее время реализация JIT в Digital Q.DataBase поддерживает ускорение вычисления выражений и преобразования кортежей. В будущем могут быть ускорены и другие операции.

Вычисление выражений используется для обработки условий WHERE, целевых списков, агрегатов и проекций. Его можно ускорить, генерируя специализированный код для каждого случая.

Преобразование кортежей — это процесс трансформации кортежа на диске (см. Раздел 7.15.6.1) в его представление в памяти. Его можно ускорить, создав функцию, специфичную для структуры таблицы и количества извлекаемых столбцов.

3.15.1.2. Встраивание (инлайнинг) #

Digital Q.DataBase обладает высокой расширяемостью и позволяет определять новые типы данных, функции, операторы и другие объекты базы данных; см. Глава 5.1. Фактически встроенные объекты реализованы с использованием почти тех же механизмов. Эта расширяемость влечёт за собой некоторую накладные расходы, например, из-за вызовов функций (см. Раздел 5.1.3). Чтобы уменьшить эти расходы, компиляция JIT может встраивать тела небольших функций в выражения, которые их используют. Это позволяет устранить значительную часть накладных расходов.

3.15.1.3. Оптимизация #

LLVM поддерживает оптимизацию сгенерированного кода. Некоторые оптимизации достаточно дешёвы, чтобы выполняться при каждом использовании JIT, в то время как другие полезны только для долго выполняющихся запросов. Подробнее об оптимизациях см. https://llvm.org/docs/Passes.html#transform-passes.

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению