|
Не верный план при ипользовании view
|
|||
---|---|---|---|
#18+
ASE 15. Есть приложение, которое делает запрос Код: plaintext
Приложение разрабатывалось давно и это не наша разработка. Т.е редактировать его мы не можем. После очередного reorg rebuild/update statistics, запрос к view начал работать очень медленно, вернее вообще не работать. Если выполнить запрос с set forceplan on, все работает нормально. Вопрос Можно ли, не затрагивая приложение, как-то поправить ситуацию??? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2010, 10:38 |
|
Не верный план при ипользовании view
|
|||
---|---|---|---|
#18+
Начиная с ASE 15.0.3 можно настроить опримизатор запросов на "старую работу". С новым оптимизатором без изменения приложения можно в ступор попасть. Даже если сегодня все работает, то завтра можно получить что-угодно... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2010, 14:02 |
|
Не верный план при ипользовании view
|
|||
---|---|---|---|
#18+
cherrex_Den wrote: > Вопрос Можно ли, не затрагивая приложение, как-то поправить ситуацию??? Да, можно использовать сохранённые планы запросов (abstract query plans). читайте хэлп на set plan dump on http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.help.ase.15.5/title.htm Ну и P&TG, главы с 11 по 14. http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.help.ase.15.5/title.htm В cлучае прямого запроса, кстати, это будет ещё и ускорение обработки запроса, потому что фаза оптимизации сокращается очень значительно при использовании сохранённых планов. Но AQP надо уметь читать и писать, это достаточно сложно. Придётся почитать и поучиться сначала. Совет: (это впрочем одна из стандартных процедур, предлагаемых в P&TG) сначала установите дапм планов запросов в ON и поймайте существующий действующий план запроса, хотя бы и с set forceplan on (потому что чтобы план собрался, запрос вообще-то должен выполниться). План НЕ БУДЕТ использоваться повторно автоматов ASE-сервером, так что ничего страшного. Получите план и, возможно подредактировав немного, сохраните в потоке чтения (а брать вы его будете из потока записи). Тогда ASE начнёт его уже использовать. С нуля писать абстрактные планы очень сложно, лучше редактировать существующий. Но естественно надо понимать, что делаешь, сначала. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2010, 17:07 |
|
Не верный план при ипользовании view
|
|||
---|---|---|---|
#18+
Пока спасло delete statistics , но не знаю, как это отразиться на других запросов. Пробовал даже подпихнуть AP в view, но по ходу ASE раскручивает запрос не обращая внимание на план в view. Попробую завтра использовать plan dump, если что, отпишусь! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2010, 19:38 |
|
Не верный план при ипользовании view
|
|||
---|---|---|---|
#18+
Первое что остановило от dump plan: Код: plaintext
а если надо чтоб where storage_id = 9? Еще один план создавать? Хотя мог просто этот момент не дочитать в P&TG! Второе: У нас используется Statement Cache, а BOL пишет Statements are not cached if the abstract plan dump or abstract plan load parameters are enabled. That is, you cannot enable the statement cache and enable the abstract plan load and abstract plan dump at configuration parameters the same time ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2010, 00:35 |
|
Не верный план при ипользовании view
|
|||
---|---|---|---|
#18+
cherrex_Den wrote: > create plan "select * from simple_view where storage_id = 8" "<plan>" > > > а если надо чтоб where storage_id = 9? Еще один план создавать? Хотя мог > просто этот момент не дочитать в P&TG! Я не очень понял, но думаю, что ты имеешь в виду, что тебе надо план переложить из stdout-а в stdin. Это группы планов. В stdout оптимизатор только пишет планы, а из stdin только читает. > Второе: У нас используется Statement Cache, а BOL пишет > > Statements are not cached if the *abstract plan dump or abstract plan > load* parameters are enabled. That is, you cannot enable the statement Ну а разве это не одно и то же ? Я считал, что оно одно и то же, только руками или автоматом управляется. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2010, 09:43 |
|
Не верный план при ипользовании view
|
|||
---|---|---|---|
#18+
MasterZiv, Вопрос такой: я имею план с запроса Код: plaintext
прибиваю его к запросу Код: plaintext
применит ли оптимизатор этот же план если запрос будет Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2010, 13:54 |
|
Не верный план при ипользовании view
|
|||
---|---|---|---|
#18+
cherrex_Den wrote: > применит ли оптимизатор этот же план если запрос будет > > select * from simple_view where storage_id = *9* Нет. Об этом чёрным по белому написано в P&T. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2010, 14:38 |
|
|
start [/forum/topic.php?fid=55&msg=36697188&tid=2010619]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
91ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 340ms |
total: | 509ms |
0 / 0 |