В СУБД для одного и того же SQL-запроса может быть построено множество различных планов выполнения. От выбора правильного плана существенно зависит скорость и эффективность выполнения запроса. Чтобы находить достаточно хороший план, СУБД-сообщество решает задачу предсказания времени выполнения запроса по плану выполнения запроса. В настоящий момент большинство решений этой задачи представляют собой сложные эвристики, использующие знания о внутренней структуре СУБД.
Альтернативный подход - сформулировать задачу предсказания в терминах машинного обучения.
На сегодняшний день известны несколько решений задачи предсказания времени выполнения запроса, использующих методы машинного обучения. Однако у всех этих решений есть существенные недостатки, поэтому задача остается открытой.
Мы исследуем применение машинного обучения для планирования выполнения запроса на примере СУБД PostgreSQL и представим первые результаты наших исследований.