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



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

93
Рис. 5.23 

План выполнения запроса из лис тинга 5.14
к
огда
 
индексы
 
не
 
исПользуются
До сих пор в этой главе рассказывалось, как индексы используются в запро-
сах. В данном разделе мы рассмотрим ситуации, когда индексы 
не
использу-
ются
. А именно здесь обсуждаются две ситуации: как в некоторых случаях 
запретить PostgreSQL использовать индексы и что делать, когда индекс не 
используется, а мы считаем, что его нужно использовать.
Избегаем использования индекса
Почему
может понадобиться избегать использования индекса? Часто разра-
ботчики баз данных считают, что использование индексов улучшает произ-
водительность любого запроса. Каждый из нас может вспомнить ситуации, 
когда нас просили «построить какие-нибудь индексы, чтобы запрос выпол-
нялся быстрее». Однако индекс не всегда нужен и в некоторых случаях может 
только мешать. Два примера из этой главы (рис. 5.1 и 5.6) показывают планы 
выполнения с последовательным чтением, которые тем не менее довольно 
эффективны.


94

Короткие запросы и индексы
Две основные причины, по которым мы можем захотеть избежать исполь-
зования индексов, заключаются в следующем:
 

небольшая таблица полностью считывается в оперативную память;
 

для выполнения запроса нам нужна большая часть строк таблицы.
Есть ли способ избежать использования существующих индексов? В боль-
шинстве случаев оптимизатор достаточно умен, чтобы понять, когда следует, 
а когда не следует использовать индексы. Но в редких случаях, когда пла-
нировщик ошибается, мы можем изменить критерии фильтрации. В начале 
этой главы говорилось, что преобразования столбцов могут блокировать 
использование индексов. Это представлялось как нечто негативное, но пре-
образование столбцов можно использовать и для повышения производи-
тельности, когда нужно предотвратить использование индекса.
Столбец числового типа можно изменить, добавив к его значению ноль. 
Например, условие 
attr1
+
0
=
p_value
не даст использовать индекс для столб-
ца 
attr1
. Для любого типа данных функция 
coalesce
будет блокировать ис-
пользование индексов, поэтому, предполагая, что 
attr2
не допускает не-
определенных значений, условие можно изменить и написать что-то вроде 
coalesce(t1.attr2,
'0')
=
coalesce(t2.attr2,
'0')
.

Download 17,08 Mb.

Do'stlaringiz bilan baham:
1   ...   69   70   71   72   73   74   75   76   ...   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