powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.5.x - зависит ли план процедуры от триггера
3 сообщений из 3, страница 1 из 1
ASE 12.5.x - зависит ли план процедуры от триггера
    #36240392
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, добрый день.
Такой вопрос - если процедура создаётся на таблицу на которой есть триггер, то будет ли её план учитывать этот триггер?
Или наоборот, если создать триггер на таблицу, то нужно ли перекомпилить все процедуры которые её используют.

По логике, оптимизатор, запросто может "сложить" процедурный и триггерный планы и на их основе сделать новый и более производительный процедурный план.

В доках, что-то не удалось найти ничего вразумительного.

Заранее благодарен за помощь.
...
Рейтинг: 0 / 0
ASE 12.5.x - зависит ли план процедуры от триггера
    #36240605
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kru пишет:

> Такой вопрос - если процедура создаётся на таблицу на которой есть
> триггер, то будет ли её план учитывать этот триггер?

Что ты подразумеваешь под словом "учитывать" ?

Планы строятся с учётом того, что на таблице есть триггер
и ему нужно будет отрабатывать. Планы на запросы на таблицу
С триггером, и БЕЗ триггера могут отличаться.
В основном это изза необходимости генерировать псевдотаблицы
INSERTED и DELETED.

Но непосредственно в плане запроса вызов триггера не отмечается.

> Или наоборот, если создать триггер на таблицу, то нужно ли перекомпилить
> все процедуры которые её используют.

Нет, даже формально нет. Они сами перекомпилируются.
(очистится процедурный кэш и в следующий раз планы создадутся
заново).

> По логике, оптимизатор, запросто может "сложить" процедурный и
> триггерный планы и на их основе сделать новый и более производительный
> процедурный план.

Нет, так не делается. Триггер -- это отдельная
процедура, у неё отдельный план. Кстати, ни как его
смотреть, ни как его очистить если что, я например не
знаю.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ASE 12.5.x - зависит ли план процедуры от триггера
    #36240792
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Большое спасибо за ответ.

По поводу плана триггера - его можно посмотреть как в примере ниже:

Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
create table test_tgr1 (i  int)
go
create table test_tgr2(j int)
go
create trigger tgr_1 
on test_tgr1 for insert
as
if not exists (select  1  from test_tgr2 t inner join inserted i on t.j = i.i)
begin
    insert into test_tgr2 select i from inserted
end
go
-- gettign trigger's plan
set showplan on
go
set fmtonly on
go
insert into test_tgr1 values ( 1 )
go
set fmtonly off
go
set showplan off
go
-- checking that insert and trigger were not executed
select * from test_tgr1
select * from test_tgr2
-- checking that after inser trigger fires
insert into test_tgr1 values ( 1 )
select * from test_tgr1

select * from test_tgr2
drop table test_tgr1 
go
drop table test_tgr2
go
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.5.x - зависит ли план процедуры от триггера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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