ADDM автоматически идентифицирует наиболее нагруженные SQL- предложения для того, чтобы пользователь их выбрал и настроил. AWR позволяет выбирать головные (top) SQL-предложения в интервале времени. Однако пользователю может захотеться настраивать набор выбранных SQL-предложений в том порядке, который установит сам пользователь. Хороший пример такой ситуации, когда разработчик находится в процессе разработки и испытания новых SQL-предложений. До тех пор, пока некое SQL-предложение не встроено в систему, обычные SQL-источники (например, AWR) применяться не могут. Таким образом, нужен пользовательский механизм для создания его собственной рабочей SQL-нагрузки и применения к ней Automatic SQL Tunung. Таким механизмом является SQL Tuning Set (STS). Поддержка STS была введена в Oracle 10g для облегчения управления набором SQL-предложений, т.е. управление [набором] как единым модулем.
SQL Tuning Set - это база данных, которая хранит одно или более SQL-предложение вместе с их статистикой и состоянием выполнения и, возможно, с пользовательским ранжированием приоритетов. SQL-предложение может быть загружено в SQL Tuning Set из различных SQL-источников. SQL-источники включают Automatic Workload Repository (AWR), курсорный кэш и выбранный SQL, предоставляемый пользователем. Рисунок 5 показывает модель типичного применения STS. STS создается и затем загружается с SQL-предложением из одного из SQL-источников. На рисунке показано, что SQL-предложения выбираются, ранжируются и фильтруются, перед тем как загрузиться в SQL Tuning Set.
Контекст выполнения, сохраненный с каждым SQL-предложением, включает: схему пользователя, имя модуля приложения и события, список связанных значений и среду трансляции курсора. Сохраняется статистика выполнения, включая истекшее время, процессорное время, логические чтения буферов, физические чтения дисков, число обработанных строк, выборок курсоров, число выполнений, число закончившихся выполнений, стоимость [плана] оптимизатора и тип команды. Фильтрация SQL-предложений может быть выполнена, используя имя модуля приложения и действие, а также любой статистики выполнения. Из этого следует, что ранжирование SQL-предложений может быть выполнено на основе любой комбинации статистики выполнения.
SQL Tuning Set может постоянно храниться в базе данных. Содержание SQL Tuning Set может обновляться, как будто STS - это объект, и может управляться при помощи процедур пакета DBMS_SQLTUNE. Однажды загруженный STS можно передавать на ввод в SQL Tuning Advisor, который потом применит автоматическую настройку SQL-предложений, подверженных влиянию других входных параметров, специфицированных пользователем. Другие вводы включают: лимит времени, рамки анализа настройки и т.д. Таким образом, SQL Tuning Set предоставляет собой мощный метод сбора и сохранения интересующего набора SQL-предложений, наряду с большим скоплением информации, которая помогает в процессе настройки.