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 01:14 pm (UTC)
я, собственно, потому вопрос и задал, что информикс без всяких хинтов нормально сам оптимизирует. и на этом фоне оракл меня удивил.
Thursday, October 2nd, 2008 01:27 pm (UTC)
оптимизатор информикса зажил на гистограммах в 96 году (самый дубовый вариант update statistics high -- собирает все по самое не могу, а в оракле немного сложнее), все базы оракла встречаемые мной сегодня до сих пор без гистограмм, статистику в них или не собирают или собирают неправильно.

Ну и еще оракл позволяет намного более изощеренные варианты и оптимизатор там намного намного сложнее.

вот например
http://www.sql.ru/forum/actualsearch.aspx?search=%CD%E5+%EF%EE%ED%FF%F2%ED%EE%2C+%E2%FB%E1%E8%F0%E0%E5%F2+%EF%EB%E0%ED+%F1+%E1%EE%EB%FC%F8%E5%E9+%F1%F2%EE%E8%EC%EE%F1%F2%FC%FE&sin=0&a=%C6%F3%F0%E0%E2%EB%E5%E2+%C4%E5%ED%E8%F1&ma=0&bid=3&dt=-1&s=1&so=1
оракл лажает на запросах, которые в принципе невозможны в информиксе.

с другой стороны
http://www.sql.ru/forum/actualthread.aspx?bid=3&tid=362323#3689350
оптимизатор оракла строит план очень долго, а информикс за 0.1 сек.