"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
--
Хорсун Влад
--~--~---------~--~----~------------~-------~--~----~
-~----------~----~----~----~------~----~------~--~---