Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Не используется абстрактный план (ASE 12.5.4) / 10 сообщений из 10, страница 1 из 1
14.10.2009, 17:10
    #36251161
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не используется абстрактный план (ASE 12.5.4)
Всем доброго дня!
Такая ситуация, создаю абстрактный план, но при запуске запроса план не используется.

например:
1)
Код: plaintext
1.
2.
3.
creat plan 
"select * from tab1 where id_tab1=100"
"( t_scan tab1)"
go

2) проверяю в sysqueryplans - там он есть.

3) запускаю set showplan on

4) запускаю свой запрос
Код: plaintext
select * from tab1 where id_tab1= 100 

и в итоге вижу что никакого тэйблскана не было, а банально использовался индекс..
все делается в одной сессии!

где я налажал? или в какие настройки сервера необходимо смотреть?


И тут же вопрос в догонку - почему при включении
Код: plaintext
set plan dump on

обычные запросы сохраняются с планами в sysqueryplans, а вызываемые процедуры нет?
и как можно выдрать план хранимой процедуры?

заранее спасибо!
...
Рейтинг: 0 / 0
14.10.2009, 22:26
    #36251756
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не используется абстрактный план (ASE 12.5.4)
Imperous пишет:

> 1)
>
> creat plan
> "select * from tab1 where id_tab1=100"
> "( t_scan tab1)"
> go
>
>
> 2) проверяю в sysqueryplans - там он есть.

Этого мало, надо же ещё положить план в "поток" для чтения
планов. OUT -- собирает планы, IN -- подаёт планы на вход
оптимизатору, если я ничего не путаю. Ну, и


> и в итоге вижу что никакого тэйблскана не было, а банально использовался
> индекс..
> все делается в одной сессии!

Это как раз не важно.
>
> где я налажал? или в какие настройки сервера необходимо смотреть?

ещё раз прочитайте типичный сценарий создания и использования
планов. Я его, если чесно, и сам подзабыл.

Кстати, планы можно аттачить к самому запросу,
я, например, только так и делаю, но это лишь потому,
что я разработчик, и все запросы под нашим контролем.

> обычные запросы сохраняются с планами в sysqueryplans, а вызываемые
> процедуры нет?
> и как можно выдрать план хранимой процедуры?

Ой, не помню. Кажется set plan dump надо указать внутри
процедуры.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
15.10.2009, 15:45
    #36253509
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не используется абстрактный план (ASE 12.5.4)
пасиб, ясно :)
только так и не получилось найти план для процедуры..
...
Рейтинг: 0 / 0
15.10.2009, 19:51
    #36254199
cherrex_Den
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не используется абстрактный план (ASE 12.5.4)
Imperous только так и не получилось найти план для процедуры..

Я думаю и не найдете! Процедура может состоять из нескольких запросов(select, update,и.т.д.).
Так какой абстрактный план процедуры вы хотите увидеть? Где один запрос(select, update,и.т.д.)?

Возмите любой запрос из процедуры и посмотрите его абстрактный план, подкоректируйте и вставьте его обратно в процедуру! Какие проблемы?
...
Рейтинг: 0 / 0
16.10.2009, 09:27
    #36254735
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не используется абстрактный план (ASE 12.5.4)
cherrex_DenImperous только так и не получилось найти план для процедуры..

Я думаю и не найдете! Процедура может состоять из нескольких запросов(select, update,и.т.д.).
Так какой абстрактный план процедуры вы хотите увидеть? Где один запрос(select, update,и.т.д.)?

Возмите любой запрос из процедуры и посмотрите его абстрактный план, подкоректируйте и вставьте его обратно в процедуру! Какие проблемы?

процедурка только из 4 параметров, селектов с кучей джойнов, into и union-ов, большая она просто...

а задумка такая - отловить абстрактный план сейчас, когда он правильный и быстрый, и вставить его в саму процедуру...
...
Рейтинг: 0 / 0
16.10.2009, 18:15
    #36256568
cherrex_Den
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не используется абстрактный план (ASE 12.5.4)
Imperous,

Так в чем проблема?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
set plan dump on
go

--ваш запрос из процедуры
SELECT ...
go

set plan dump off
go

--ищем id плана где "pattern", часть вашего запроса
sp_find_qplan '%pattern%'
go

--ищем сам план по ИДу
sp_help_qplan @ID
go

--добавляем план к запросу
SELECT … (PLAN (<your plan>))

-- потом запрос в процедуру 
create procedure...
as
SELECT … (PLAN (<your plan>))

вот и все!

пример биндинга плана к запросу(в ASE 15 синтаксис отличается)
...
Рейтинг: 0 / 0
19.10.2009, 15:24
    #36259797
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не используется абстрактный план (ASE 12.5.4)
кстати, как отчистить таблицу sysqueryplans ?
...
Рейтинг: 0 / 0
19.10.2009, 15:55
    #36259897
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не используется абстрактный план (ASE 12.5.4)
сделал так
1) set forceplan on
2) set plan dump on
3) запустил весь текст процедуры с параметрами
4) set plan dump off
5) sp_find_qplan '%часть текста процедуры%'

получил результат в 22 строки своего плана, но при попытке склеить (таким путем 1стр + 2стр + ...) понял что получается ерунда... ((( где-то точно нехватает слов, попытался слепить по логическому смыслу "стр+ока" - тоже понял что выходит ерунда (((
...
Рейтинг: 0 / 0
19.10.2009, 16:01
    #36259921
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не используется абстрактный план (ASE 12.5.4)
извиняюсь...
вобщем в адвантаже сделал вывод в строковом режиме, а не в гриде и все получилось суперно.
немного подкорректировать и пойдет!
...
Рейтинг: 0 / 0
19.10.2009, 16:06
    #36259940
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не используется абстрактный план (ASE 12.5.4)
собрал весь план... капец, он больше самой процедуры...
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Не используется абстрактный план (ASE 12.5.4) / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]