Ded пишет:

Рубан Станислав wrote:

Сервер может хранить историю выполнения запросов при смене плана (план, время выполнения и т.д.), при следующем вызове анализируется ИСТОРИЯ и выбирается план, который приводил к лучшему результату.

Я бы таки предпочёл, чтоб сервер занимался делом, а не хранил истории всех запросов и не копался бы в этом окаменевшем дерьме, что гарантированно приведёт к выполнению select 1 from rdb$database за минуту после пары лет эксплуатации базы.

Может быть и так :-)
хотя я говорю сохранять историю выполнения при СМЕНЕ ПЛАНА . Как часто сервер будет менять план при select 1 from rdb$database, наверняка не очень часто, соответственно сохраненных "историй" будет не очень много.... У меня в этой процедуре всего два возможных плана было.... Вот как раз "оценивать историю выполнения запросов или нет" можно было в конфиг и воткнуть...

Собсно, лет эдак 7, до появления FB1.5, за непланированный руками запрос у меня кодер не так чтоб сразу отдавал 10% зарплаты, но пиво точно ставил. На первый раз. В последнее время от практики использования секции Plan почти отошли, но на автомате пишем +0 в условиях джойна, оставляя судьбе совсем уж небольшой шанс - использовать все нужные индексы, но порядок объединения выставить через жопу. Тем не менее, она, судьба, регулярно этот шанс использует. И тогда таки пишем волшебное слово Plan. И ничего, живы...

как не странно, но FB 1.5 "в этом месте" в течении года не менял план ни в одном филиале

Станислав

Ответить