Учебное пособие Санкт-Петербург «бхв-петербург»


EXPLAIN SELECT t.ticket_no



Pdf көрінісі
бет232/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   228   229   230   231   232   233   234   235   ...   256
sql osnovi yazika

EXPLAIN SELECT t.ticket_no,
t.passenger_name,
tf.flight_id,
tf.amount
FROM tickets t
JOIN ticket_flights tf ON t.ticket_no = tf.ticket_no
ORDER BY t.ticket_no;
QUERY PLAN
-----------------------------------------------------------------------
Merge Join (cost=1.51..98276.90 rows=1045726 width=40)
Merge Cond: (t.ticket_no = tf.ticket_no)
-> Index Scan using tickets_pkey on tickets t (cost=0.42..17230.42
rows=366733 width=30)
-> Index Scan using ticket_flights_pkey on ticket_flights tf
(cost=0.42..67058.74 rows=1045726 width=24)
(4 строки)
Два внутренних узла дерева плана отвечают за сканирование таблиц tickets и
ticket_flights по индексам (Index Scan). Таким образом, верхний узел (Merge
Join) получает наборы строк этих таблиц уже в отсортированном виде, поэтому не
требуется отдельного узла для сортировки результирующих строк. Обратите внима-
ние на оценки стоимости выполнения всех трех операций: двух сканирований таблиц
и результирующего соединения слиянием. Мы видим, что первая оценка в узле Merge
Join равна 1,51, что значительно меньше вторых оценок, вычисленных планиров-
щиком для двух нижних узлов, а именно: 17230,42 и 67058,74.
304


10.4. Управление планировщиком
Напомним, что первая оценка говорит, сколько ресурсов будет затрачено (сколько
времени, в условных единицах, пройдет) до начала вывода первых результатов вы-
полнения операции на данном уровне дерева плана. Вторая оценка показывает об-
щее количество ресурсов, требующихся для полного завершения операции на данном
уровне дерева плана. Таким образом, можно заключить, что вывод результирующих
строк начнется еще задолго до завершения сканирования исходных таблиц.
10.4. Управление планировщиком
Для управления планировщиком предусмотрен целый ряд параметров. Их можно из-
менить на время текущего сеанса работы с помощью команды SET. Конечно, изме-
нять параметры в производственной базе данных следует только в том случае, когда
вы обоснованно считаете, что планировщик ошибается. Однако для того чтобы на-
учиться видеть ошибки планировщика, нужен большой опыт. Поэтому следует рас-
сматривать приведенные далее команды управления планировщиком лишь с пози-
ции изучения потенциальных возможностей управления им, а не как рекомендацию
к бездумному изменению этих параметров в реальной работе.
Например, чтобы запретить планировщику использовать метод соединения на осно-
ве хеширования, нужно сделать так:


Достарыңызбен бөлісу:
1   ...   228   229   230   231   232   233   234   235   ...   256




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет