Я раньше думал, что Оракл умный. И сам умеет оптимизировать выполнение запросов. А тут наткнулся на ситуацию, когда простейший
SELECT count(*) FROM однатаблица WHERE поле = 'foo' AND дата_добавления >= SYSDATE-30/1440
выполнялся по 15 минут, пока в запрос явным образом не добавили /*+ INDEX_JOIN(BAZ) */
Что я делаю неправильно?
SELECT count(*) FROM однатаблица WHERE поле = 'foo' AND дата_добавления >= SYSDATE-30/1440
выполнялся по 15 минут, пока в запрос явным образом не добавили /*+ INDEX_JOIN(BAZ) */
Что я делаю неправильно?
Re: тьфу rownum
Re: тьфу rownum
Т.е. функция тяжеловесна и ее надо выполнить последним предикатом
имеем запрос
select * from a where a.f1=100 and func1(a.f0)>0
какой предикат проверяется сначала, а фиг знает, а все функции по мнению оракла равен 0
есть хинт ordered_predicates но он неудобен, если предикатов >2
я переписываю запрос так numrows>=0
select *
from (select * from a where ... and numrows>=0)
where func1(a.f0)>0
Re: тьфу rownum