10.4 Управление планировщиком
Для управления планировщиком предусмотрен целый ряд параметров. Их можно из-
менить на время текущего сеанса работы с помощью команды SET. Конечно, изме-
нять параметры в производственной базе данных следует только в том случае, когда
вы
обоснованно
считаете, что планировщик ошибается. Однако для того чтобы на-
учиться видеть ошибки планировщика, нужен большой опыт. Поэтому следует рас-
сматривать приведенные далее команды управления планировщиком лишь с пози-
ции изучения потенциальных возможностей управления им, а не как рекомендацию
к бездумному изменению этих параметров в реальной работе.
Например, чтобы запретить планировщику использовать метод соединения на осно-
ве хеширования, нужно сделать так:
SET enable_hashjoin = off;
Чтобы запретить планировщику использовать метод соединения слиянием, нужно
сделать так:
SET enable_mergejoin = off;
А для того чтобы запретить планировщику использовать соединение методом вло-
женного цикла, нужно сделать так:
SET enable_nestloop = off;
По умолчанию все эти параметры имеют значение «on» (включено).
Необходимо уточнить, что в результате выполнения вышеприведенных команд не
накладывается полного запрета на использование конкретного метода соединения
наборов строк. Методу просто назначается очень высокая стоимость, но планиров-
щик все равно сохраняет возможность маневра, и даже такой «запрещенный» метод
может быть использован. Более подробно этот вопрос рассматривается в одном из
примеров в разделе «Контрольные вопросы и задания».
Давайте запретим планировщику использовать метод соединения слиянием:
SET enable_mergejoin = off;
SET
Теперь повторим предыдущий запрос:
237
EXPLAIN
SELECT t.ticket_no, t.passenger_name,
Достарыңызбен бөлісу: |