Руководство по созданию эффективных запросов



Download 17,08 Mb.
Pdf ko'rish
bet72/210
Sana25.06.2022
Hajmi17,08 Mb.
#704548
TuriРуководство
1   ...   68   69   70   71   72   73   74   75   ...   210
Bog'liq
OptimizZaprvPostgreSQL

Рис. 5.21 

Порядок соединений: при схожей селективности
выполнение начинается с меньшей таблицы
Причина в том, что таблица 
account
содержит значительно меньше запи-
сей, чем таблица 
passenger
, и хотя селективность обоих фильтров примерно 
одинакова, индекс по таблице 
account
даст меньше записей.
Однако план выполнения значительно меняется, когда выбираются пас-
сажиры с необычной фамилией, обладающей очень низкой селективностью. 
План выполнения на рис. 5.22 показывает, что в этом случае начать выпол-
нение с таблицы 
passenger
будет более ограничительным.
В лис тинге 5.14 используется похожий запрос, но вместо соединения с таб-
лицей 
passenger
выполняется соединение с таблицей 
frequent_flyer
, которая 
составляет примерно половину размера таблицы 
account
. Конечно, чтобы 
иметь возможность вести поиск по этой таблице, требуется еще два индекса:


92

Короткие запросы и индексы
CREATE INDEX frequent_fl_last_name_lower_pattern
ON frequent_flyer (lower(last_name) text_pattern_ops);
CREATE INDEX frequent_fl_last_name_lower ON frequent_flyer (lower(last_name));
Рис. 5.22 

Другая селективность требует иного порядка соединений
В данном случае выполнение начнется с таблицы 
frequent_flyer
, как по-
казано на рис. 5.23.
Листинг 5.14 

Запрос, выбирающий количество бронирований для каждого 
часто летающего пассажира
SELECT a.account_id,
a.login,
f.last_name,
f.first_name,
count(*) AS num_bookings
FROM frequent_flyer f
JOIN account a USING(frequent_flyer_id)
JOIN booking b USING(account_id)
WHERE lower(f.last_name) = 'smith'
AND lower(login) LIKE 'smith%'
GROUP BY 1,2,3,4


Когда индексы не используются 


Download 17,08 Mb.

Do'stlaringiz bilan baham:
1   ...   68   69   70   71   72   73   74   75   ...   210




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish