November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Thursday, October 2nd, 2008 11:17 am
Я раньше думал, что Оракл умный. И сам умеет оптимизировать выполнение запросов. А тут наткнулся на ситуацию, когда простейший
SELECT count(*) FROM однатаблица WHERE поле = 'foo' AND дата_добавления >= SYSDATE-30/1440
выполнялся по 15 минут, пока в запрос явным образом не добавили /*+ INDEX_JOIN(BAZ) */

Что я делаю неправильно?
Tags:
Thursday, October 2nd, 2008 12:03 pm (UTC)
вариант объяснения почему дольше такой (считаем что статистика есть):

без хинта, оракл пошел в таблицу и делал полный скан и его стоимость была меньше, чем в сумме проход обоих индексов, но индексы лежали в кеше, и выполнилось быстрее.

короче покажи
set autotrace on
вариант с хинтом;
вариант без хинта;

и все станет абсолютно ясно.