Добавить в корзинуПозвонить
Найти в Дзене
Oracle Developer

Происшествие с индексом

Происшествие с индексом Друзья, всем привет! 👋 С вами Костя Андронов. Сегодня разберём интересную ситуацию, которую я показывал на одной из практик курса «Оптимизация Oracle SQL». Есть табличка employee1, у неё есть индекс по колонке department_id. Пишем простой запрос: select ... from employee1 e where department_id = 11; Селективность этого предиката - 1,6% от общего количества строк в таблице. Помните правило: индекс обычно используется, когда выбирается менее 15% строк. В нашем случае 1,6% - прямо идеальные условия для применения индекса! ⚙️ Но если заглянуть в план выполнения, то видим неожиданное - Table Access Full 😱 Получается, индекс есть, но СУБД всё равно делает полный просмотр таблицы. Почему так происходит? 🤔 Кстати, отличный вопрос для собеседования 😉 Ответ кроется в нюансах оптимизатора Oracle, который иногда решает, что полное сканирование будет быстрее, чем обращение к индексу. Почему так - разберём в четверг 🎓 Пишите ваши гипотезы в чатик 💬 Всем проду

Происшествие с индексом

Друзья, всем привет! 👋

С вами Костя Андронов.

Сегодня разберём интересную ситуацию, которую я показывал на одной из практик курса «Оптимизация Oracle SQL».

Есть табличка employee1, у неё есть индекс по колонке department_id.

Пишем простой запрос:

select ...

from employee1 e

where department_id = 11;

Селективность этого предиката - 1,6% от общего количества строк в таблице.

Помните правило: индекс обычно используется, когда выбирается менее 15% строк.

В нашем случае 1,6% - прямо идеальные условия для применения индекса! ⚙️

Но если заглянуть в план выполнения, то видим неожиданное - Table Access Full 😱

Получается, индекс есть, но СУБД всё равно делает полный просмотр таблицы. Почему так происходит? 🤔

Кстати, отличный вопрос для собеседования 😉

Ответ кроется в нюансах оптимизатора Oracle, который иногда решает, что полное сканирование будет быстрее, чем обращение к индексу.

Почему так - разберём в четверг 🎓

Пишите ваши гипотезы в чатик 💬

Всем продуктивной рабочей недели! 💪

#oracle #performance #sql #оптимизация #Konstantin_Andronov

Канал Oracle Developer | Чатик 💬

Мини-курс Оптимизация: Быстрый старт 🚀

Анкета предзаписи на 7 поток "Оптимизация Oracle SQL"