Выполните запросы, подсчитывающие количество строк, в которых атрибут
fare_conditions принимает одно из трех возможных значений. Каждый из запро-
сов выполните три-четыре раза, поскольку время может немного изменяться,
и подсчитайте среднее время. Обратите внимание на число строк, возвращае-
мое функцией count для каждого значения атрибута fare_conditions. При этом
среднее время выполнения запросов для трех различных значений атрибута
fare_conditions будет различаться незначительно, поскольку в каждом случае
СУБД просматривает все строки таблицы.
SELECT count( * ) FROM ticket_flights
WHERE fare_conditions = 'Comfort';
SELECT count( * ) FROM ticket_flights
WHERE fare_conditions = 'Business';
SELECT count( * ) FROM ticket_flights
WHERE fare_conditions = 'Economy';
Создайте индекс по столбцу fare_conditions. Конечно, в реальной ситуации та-
кой индекс вряд ли целесообразно создавать, но нам он нужен для эксперимен-
тов.
Проделайте те же эксперименты с таблицей ticket_flights. Будет ли различать-
ся среднее время выполнения запросов для различных значений атрибута
fare_conditions? Почему это имеет место?
В завершение этого упражнения отметим, что в случае ошибки планировщи-
ка при использовании индекса возможно не только отсутствие положительного
эффекта, но и значительный отрицательный эффект.
4. Для одной из таблиц создайте индекс по двум столбцам, причем по одному из
них укажите убывающий порядок значений столбца, а по другому — возраста-
ющий. Значения NULL у первого столбца должны располагаться в начале, а у
второго — в конце. Посмотрите полученный индекс с помощью команд утили-
ты psql
Достарыңызбен бөлісу: