"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

    Да, конечно

-- 
Хорсун Влад



--~--~---------~--~----~------------~-------~--~----~
-~----------~----~----~----~------~----~------~--~---

Ответить