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

например:
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
Не используется абстрактный план (ASE 12.5.4)
    #36251756
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Не используется абстрактный план (ASE 12.5.4)
    #36253509
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пасиб, ясно :)
только так и не получилось найти план для процедуры..
...
Рейтинг: 0 / 0
Не используется абстрактный план (ASE 12.5.4)
    #36254199
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Imperous только так и не получилось найти план для процедуры..

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

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

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

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

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

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

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


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