6
стат. признаки
стат. признаки
стат. признаки
Принцип работы AQO
обучение
(learn_aqo)
дерево
запроса
план
запроса
планирование
результат
использование
(use_aqo)
исполнение
класс
запросов
классификация
Выполняемый запрос должен быть отнесен к одному из классов,
то есть классифицирован. В один класс попадают все запросы
с одинаковыми деревьями разбора, отличающимися только
константами.
При исполнении плана запроса AQO получает статистическую
информацию (признаки, features) о реальной кардинальности
в разных узлах плана. Эта информация сохраняется в привязке
к соответствующему классу запроса — происходит обучение модели.
Данные обучения сохраняются в файлах и при запуске AQO
загружаются в разделяемую память.
Если запросы некоторого класса уже выполнялись и по ним накоплена
статистическая информация, модель используется для уточнения
оценки планировщика.
Обучением и использованием можно управлять отдельно для каждого
класса запросов. Например, сначала можно обучать модель для какого-
то проблемного запроса, но не использовать ее оценки (которые могут
поначалу оказаться неточными), а после успешного обучения — начать
использовать, но перестать обучать.
Но если детализация до отдельных классов не требуется, AQO можно
управлять, просто устанавливая один из режимов, которые будут
рассмотрены ниже.