powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / план запроса хранимой процедуры
7 сообщений из 7, страница 1 из 1
план запроса хранимой процедуры
    #34786303
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, можно ли в Sybase ASE посмотреть план запроса из хранимой процедуры, так чтобы не сама процедура не выполнялась.
Я пробовал: Set showplan on Set noexec on - план запроса не выводится
Если поставить Set noexec off, то план показывается, но при этом и процедура выполняется.
Заранее благодарен за возможные варианты
...
Рейтинг: 0 / 0
план запроса хранимой процедуры
    #34786632
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kru пишет:

> Народ, можно ли в Sybase ASE посмотреть план запроса из хранимой
> процедуры, так чтобы не сама процедура не выполнялась.

Нельзя.

Можно только выдрать запрос из процедуры, подставив значения параметров
и переменных, но тут надо делать это умеючи. Надо подставлять только
именно значения параметров процедуры в запрос, переменные надо оставлять
переменными, объявляя их с помощью declare в этом же батче. Иначе планы будут
неэквивалентными. Хотя и в этом случае остается вероятность что они будут
неэквивалентными все равно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
план запроса хранимой процедуры
    #34786811
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я нашёл еще одно решение - в самой процедуре поставить set noexec on. В сессии вызывающей процедуру нужно поставить только set showplan on. Если после этого вызвать процедуру, то будет выведен только её план.
Правда, это довольно сомнительный путь, т.к. требует пересоздания процедуры, но для отладки может быть и подойдёт.
use pubs2
go
create procedure dbo.ps_test_plan
@au_id char(11)
,@aulname varchar(40)
as
set noexec on
select * from authors
where au_lname = @aulname
or au_id = @au_id
go

вызывающая сессия:
set showplan on
execute ps_test_plan '267-41-2394', 'Straight'

В результате возвращается только план запроса.
У меня он получился одинаковым с планом для:
select * from authors where au_lname = 'Straight' or au_id = '267-41-2394'

Возможно, что в более сложных случаях планы могут и не совпадать.
...
Рейтинг: 0 / 0
план запроса хранимой процедуры
    #34787041
sn1251
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
set showplan on
go
set fmtonly on
go
exec procname ...
go
set fmtonly off
go
set showplan on
go

показывает план вполне нормально
...
Рейтинг: 0 / 0
план запроса хранимой процедуры
    #34788857
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавил я это в FAQ http://www.sql.ru/faq/faq_topic.aspx?fid=921
...
Рейтинг: 0 / 0
план запроса хранимой процедуры
    #34788975
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
set fmtonly on - это то, что я искал.

Всем большое спасибо
...
Рейтинг: 0 / 0
план запроса хранимой процедуры
    #34789656
Фотография Zhora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sn1251
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
set showplan on
go
set fmtonly on
go
exec procname ...
go
set fmtonly off
go
set showplan on
go

показывает план вполне нормально
Да, это станdартная set опция, которая работaет и в sp, известна давно
(по крайней мере с 11.9.2), была "недокументирована", стала "документирована" где-то с 12.5.х версий.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / план запроса хранимой процедуры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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