"Alexander Goldun" ...
> Vlad Horsun пишет:
>
> >     Дык - план-то уже в кеше. И не факт, что самый хороший :-D
>
> Разумеется. По этому поводу я могу опять привести ссылку и цитату для
> детсада :)
> http://www.ianywhere.com/developer/product_manuals/sqlanywhere/0902/en/html/dbugen9/00000390.htm
>
> A good plan, not necessarily the best plan
>
> The goal of the optimizer is to find a good access plan. Ideally, the
> optimizer would identify the most efficient access plan possible, but
> this goal is often impractical. Given a complicated query, a great
> number of possibilities may exist.

    Да, да. Когда такое читаю, думаю - иногда лучше молчать, если сказать 
нечего.
Хороший пример документации ASA :)

> > И кто его знает, когда ASA решит его из кеша выкинуть
>
> Если разработчики признаются - расскажу.

    Когда факт выполнения будет сильно отличаться от плана. Но это уже поздно, 
т.к.
плохое выполнение запроса уже произошло. Поэтому мне и не нравится (и непонятна)
идея накопления статистики выполнения, влияющая на планы. Т.е. сама идея вроде
бы правильная, но как начнёшь копать чуть глубже - не всё так гладко.

> Уж при дисконнекте клиента точно выкинет

    Конечно - кеш-то только в рамках коннекта живёт :-D

http://www.ianywhere.com/developer/product_manuals/sqlanywhere/0902/en/html/dbugen9/00000403.htm

The plan cache is a per-connection cache of the data structures used to execute 
an access plan

    Оттуда же :

The maximum number of plans to cache is specified with the option setting 
MAX_PLANS_CACHED.
The default is 20

    Можно сказать, что в ASA по-умолчанию отсутствует кеш планов :-D

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



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

Ответить