Оптимизаторы запросов к базе данных в значительной степени полагаются на оценку мощности (CE) для прогнозирования размеров результатов запроса и, таким образом, выбора наилучшего плана выполнения. Неточные оценки количества элементов могут привести к снижению производительности запросов. Существующие методы CE имеют ограничения, особенно при работе со сложными запросами. Хотя модель обучения CE более точна, стоимость ее обучения высока, и в ней отсутствует систематическая контрольная оценка.
В современных реляционных базах данных решающую роль играет оценка мощности (CE). Проще говоря, оценка мощности — это прогноз того, сколько промежуточных результатов вернет запрос к базе данных. Этот прогноз оказывает огромное влияние на выбор плана выполнения оптимизатором запросов, например, на определение порядка соединения, использование индексов и выбор лучшего метода соединения. Если оценка количества элементов неточна, план выполнения может быть сильно нарушен, что приведет к чрезвычайно низкой скорости выполнения запросов и серьезно повлияет на общую производительность базы данных.
Однако существующие методы оценки мощности имеют множество ограничений. Традиционная технология CE опирается на некоторые упрощающие допущения и часто точно предсказывает количество сложных запросов, особенно когда задействовано несколько таблиц и условий. Хотя обучение моделей CE может обеспечить более высокую точность, их применение ограничено длительным временем обучения, необходимостью в больших наборах данных и отсутствием систематической сравнительной оценки.
Чтобы восполнить этот пробел, исследовательская группа Google запустила CardBench, новую систему сравнительного анализа. CardBench включает более 20 реальных баз данных и тысячи запросов, что значительно превосходит предыдущие тесты. Это позволяет исследователям систематически оценивать и сравнивать различные модели обучения CE в различных условиях. Тест поддерживает три основных параметра: модели на основе экземпляров, модели с нулевым выстрелом и модели с точной настройкой, подходящие для различных потребностей обучения.
CardBench также включает в себя набор инструментов, которые могут рассчитывать необходимую статистику, генерировать реальные SQL-запросы и создавать аннотированные графики запросов для обучения моделей CE.
Тест предоставляет два набора обучающих данных: один для запроса одной таблицы с несколькими предикатами фильтра и один для запроса двоичного соединения, включающего две таблицы. Тест включает 9125 запросов к одной таблице и 8454 запроса двоичного соединения к одному из небольших наборов данных, что обеспечивает надежную и сложную среду для оценки модели. Метки обучающих данных из Google BigQuery потребовали 7 лет процессорного времени на выполнение запроса, что подчеркивает значительные вычислительные затраты на создание этого теста. Предоставляя эти наборы данных и инструменты, CardBench снижает барьер для исследователей при разработке и тестировании новых моделей CE.
При оценке производительности с помощью CardBench тщательно настроенная модель показала себя особенно хорошо. В то время как модели с нулевым выстрелом изо всех сил пытаются повысить точность при применении к невидимым наборам данных, особенно в сложных запросах, включающих соединения, модели с точной настройкой могут достичь точности, сравнимой с методами на основе экземпляров, с гораздо меньшим количеством обучающих данных. Например, модель точно настроенной графовой нейронной сети (GNN) достигла средней q-ошибки, равной 1,32, и q-ошибки 95-го процентиля, равной 120, для запросов двоичного соединения, что значительно лучше, чем модель с нулевым выстрелом. Результаты показывают, что даже при 500 запросах точная настройка предварительно обученной модели может значительно повысить ее производительность. Это делает их подходящими для практических приложений, где обучающие данные могут быть ограничены.
Внедрение CardBench дает новую надежду в области оценки выученной кардинальности, позволяя исследователям более эффективно оценивать и улучшать модели, тем самым стимулируя дальнейшее развитие в этой важной области.
Бумажный вход: https://arxiv.org/abs/2408.16170
Короче говоря, CardBench предоставляет комплексную и мощную среду сравнительного анализа, предоставляет важные инструменты и ресурсы для исследования и разработки моделей оценки мощности обучения, а также способствует развитию технологии оптимизации запросов к базе данных. Особого внимания заслуживают превосходные характеристики его точно настроенной модели, предоставляющие новые возможности для практических сценариев применения.