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



Download 17,08 Mb.
Pdf ko'rish
bet172/210
Sana25.06.2022
Hajmi17,08 Mb.
#704548
TuriРуководство
1   ...   168   169   170   171   172   173   174   175   ...   210
Bog'liq
OptimizZaprvPostgreSQL

223
Листинг 12.2 

Создаем тип возвращаемого значения
DROP TYPE IF EXISTS booking_leg_part;
CREATE TYPE booking_leg_part AS (
departure_airport char(3),
booking_id int,
is_returning boolean
);
Теперь создадим функцию с двумя параметрами: кодом страны по стан-
дарту ISO и временем последнего обновления. Эта функция показана в лис-
тинге 12.3.
Листинг 12.3 

Запрос из лис тинга 6.6, упакованный в функцию
CREATE OR REPLACE FUNCTION select_booking_leg_country (
p_country text,
p_updated timestamptz
)
RETURNS SETOF booking_leg_part
AS $body$
BEGIN
RETURN QUERY
SELECT departure_airport,
booking_id,
is_returning
FROM booking_leg bl
JOIN flight f USING (flight_id)
WHERE departure_airport IN (
SELECT airport_code
FROM airport
WHERE iso_country = p_country
)
AND bl.booking_id IN (
SELECT booking_id
FROM booking
WHERE update_ts > p_updated
);
END;
%body$
LANGUAGE plpgsql;
В главе 6 показано, как PostgreSQL выбирает разные планы выполнения 
в зависимости от значений параметров для поиска страны и времени и как 
это влияет на скорость выполнения.
Поскольку функции в PostgreSQL (как и в других системах) являются ато-
марными, мы не можем воспользоваться командой 
EXPLAIN
, чтобы увидеть 
план выполнения запроса внутри функции (точнее, команду 
EXPLAIN
может 
выполнить, но она покажет только сам факт выполнения функции), но по-
скольку ожидаемое время ответа на запрос известно, можно понять, что 
происходит внутри.


224

Динамический SQL
Напомним, что ранее команда из лис тинга 12.4 выполнялась около 40 се-
кунд (с использованием двух соединений хешированием).

Download 17,08 Mb.

Do'stlaringiz bilan baham:
1   ...   168   169   170   171   172   173   174   175   ...   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