"Alexander Goldun" ...
> Вторая попытка отправить читаемый ответ :)
>
> Horsun Vlad пишет:
>
> > Ну, это же явный маразм.
>
> Про маразм - это сгоряча.
Нет, не сгоряча. В ASA параметризированные запросы теряют
половину своих преимуществ - отсутствие повторной оптимизации,
которая может быть дольше, чем сам запрос
> IMHO маразм - это использование единого плана
> для всех возможных значений параметров.
Для запросов в процедурах так оно и есть (даже! :) в ASA
> (И понятие "плохой индекс" мне тоже кажется достаточно маразматичным).
Подумай несколько раз о нём :)
> Упрощенный, но жизненный пример - отбор документов, скажем по периоду,
> складу и статусу. Есть индекс по дате, FK по складу, индекс по статусу.
> Дата более-менее равномерна, склады заметно отличаются объемом потока
> документов, а распределение по статусу вообще супер перекошенное - 99%
> закрыты и очень небольшое кол-во "в обработке". Какой индекс оптимальнее
> будет?
Это вопрос или таки пример ? :-D
> > Берём процедуру типа
> ...
> > ты хочешь сказать, что каждое выполнение внутреннего select'а
> > будет оптимизтроваться заново ?
>
> Для процедур, функций и триггеров сделано "интеллектуальное" кэширование
> планов:
Да, кавычки ты к месту употребил :)
>
http://www.ianywhere.com/developer/product_manuals/sqlanywhere/0902/en/html/dbugen9/00000403.htm
Да, я уже это прочитал. Кстати - глубина доки по ASA
поражает - такое впечатление, что они её пишут для детсадов
и боятся (или просто не знают ?) написать что-нибудь более
сложное, чем 2х2
> Вкраце смысл: после нескольких выполнений оператора строится reusable
> план. Он не зависит от значений переменных.
Приходим туда, откуда начали
> Если стоимость такого плана
> близка к лучшей зафиксированной стоимости запроса, то план добавляется в
> кэш и используется в дальнейшем.
Это работает только если пар-ры не плавают. Рассчитывать на
это - глупо (маразм :)
> В противном случае затраты на
> оптимизацию на каждом исполнении перевешиваются выгодами от оптимизации
> и принимается решение не кэшировать, а оптимизировать каждый раз.
Ниасилил. Замени кеширование на оптимизацию в этом предложении
в некоторых местах (или наоборот) :)
> Запросы с сохраненными в кэше планами периодически переоптимизируются
> для проверки относительной эффективности сохраненного плана.
>
> > Нафиг-нафиг такой 'оптимизатор'
>
> Никто ж не заставляет :) Просто упомянул к сведению.
Просто эта фича ASA
а) не совсем в тему того, о чём говорились,
б) весьма далека от идеала (ладно - imho :)
в) мне лично представляется весьма спорной
> P.S. Гистограммы в FB планируются? В roadmap упоминается со средним
> приоритетом Optimizer improvements ... more data statistics
Да, конечно
--
Хорсун Влад
--~--~---------~--~----~------------~-------~--~----~
-~----------~----~----~----~------~----~------~--~---