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



Download 17,08 Mb.
Pdf ko'rish
bet54/210
Sana25.06.2022
Hajmi17,08 Mb.
#704548
TuriРуководство
1   ...   50   51   52   53   54   55   56   57   ...   210
Bog'liq
OptimizZaprvPostgreSQL

65
Листинг 4.3 

Простой запрос с одним условием
SELECT flight_id, scheduled_departure
FROM flight f
JOIN airport a ON departure_airport = airport_code
AND iso_country = 'US'
Листинг 4.4 

Тот же запрос, что и в лис тинге 4.3, но с другим значением
SELECT flight_id, scheduled_departure
FROM flight f
JOIN airport a ON departure_airport = airport_code
AND iso_country = 'CZ'
Рис. 4.6 

План выполнения для лис тинга 4.4
Рис. 4.7 

Гистограмма распределения значений
Почему оптимизатор может ошибаться?
Но как мы можем быть уверены, что выбранный оптимизатором план дей-
ствительно наилучший? И можно ли вообще найти наилучший план вы-


66 

Планы выполнения
полнения? Мы потратили довольно много времени на объяснение того, что 
оптимизатор выполняет свою работу наилучшим образом, если мы не будем 
ему мешать. Но если это так, то о чем же остальная часть книги? Реальность 
такова, что ни один оптимизатор не идеален, даже планировщик запросов 
PostgreSQL.
Во-первых, хотя алгоритм оптимизации математически верен, то есть на-
ходит план с лучшей оценкой стоимости, эти оценки по сути своей неточ-
ны. Простые формулы, объясненные в главе 3, действительны только для 
равномерного распределения данных, но равномерное распределение редко 
встречается в реальных базах данных. На самом деле оптимизаторы исполь-
зуют более сложные формулы, но они также являются несовершенными при-
ближениями к реальности. Как сказал Джордж Бокс: «Все модели неверны, 
но некоторые из них полезны».
Во-вторых, системы баз данных, включая PostgreSQL, собирают подробную 
статистику хранимых данных (обычно в виде гистограмм). Гистограммы 
значительно улучшают оценки селективности. Но, к сожалению, их нельзя 
использовать для промежуточных результатов. Ошибки при оценке проме-
жуточных результатов – основная причина, из-за которой у оптимизатора 
может не получиться построить оптимальный план.
В-третьих, оптимальный план может быть исключен эвристиками, или за-
прос может быть слишком сложен для точного алгоритма оптимизации. В по-
следнем случае используются алгоритмы приблизительной оптимизации.
Во всех этих ситуациях требуется вмешательство человека, и книга как раз 
об этом. Теперь, когда мы знаем, что происходит во время оптимизации, мы 
можем исправить проблему, если что-то работает не так, как надо.
Несмотря на все описанные возможности ошибиться, в большинстве слу-
чаев оптимизаторы работают хорошо. Однако мы наблюдаем за поведени-
ем всей системы и, следовательно, нам доступно больше информации, чем 
оптимизатору. Мы можем использовать эти дополнительные знания, чтобы 
помочь оптимизатору работать еще лучше.

Download 17,08 Mb.

Do'stlaringiz bilan baham:
1   ...   50   51   52   53   54   55   56   57   ...   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