powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Триггеры FOR STATEMENT и использование NEW&OLD
16 сообщений из 16, страница 1 из 1
Триггеры FOR STATEMENT и использование NEW&OLD
    #38594496
AZv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Мы сами люди не местные", посему - в недоумении: в pg нельзя достучаться до вставляемых/удаляемых/ редактируемых записей в триггерах FOR STATEMENT? Т.е. "new" и "old" - записи, а не посевдотаблицы? И могут использоваться только в триггерах FOR EACH ROW?
А куды ж тогда крестьянину податься? В смысле - есть ли шанс обойти сии грабли?
...
Рейтинг: 0 / 0
Триггеры FOR STATEMENT и использование NEW&OLD
    #38595006
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AZv,

в FOR EACH ROW сохраняете куда-нибудь, в FOR STATEMENT читаете оттуда.
...
Рейтинг: 0 / 0
Триггеры FOR STATEMENT и использование NEW&OLD
    #38595412
AZv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёш,
Вообще-то конечная цель была - избавится от FOR EACH ROW...
...
Рейтинг: 0 / 0
Триггеры FOR STATEMENT и использование NEW&OLD
    #38595440
buddy_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AZvВ смысле - есть ли шанс обойти сии грабли?

В лоб - нет. В зависимости от задачи можно поиграться с rules'ами.
...
Рейтинг: 0 / 0
Триггеры FOR STATEMENT и использование NEW&OLD
    #38596217
AZv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buddy_ekb В зависимости от задачи можно поиграться с rules'ами.
Спасибо, попробуем...
...
Рейтинг: 0 / 0
Триггеры FOR STATEMENT и использование NEW&OLD
    #38596395
Фотография Warstone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AZvЁш,
Вообще-то конечная цель была - избавится от FOR EACH ROW...А зачем вы это хотите сделать? (Я не издеваюсь, если что)
...
Рейтинг: 0 / 0
Триггеры FOR STATEMENT и использование NEW&OLD
    #38596603
AZv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WarstoneAZvЁш,
Вообще-то конечная цель была - избавится от FOR EACH ROW...А зачем вы это хотите сделать? (Я не издеваюсь, если что)
Сколько раз будет вызвана триггерная функция при вставке 100тыс. записей "пачкой"? Каковы будут при этом накладные расходы?
...
Рейтинг: 0 / 0
Триггеры FOR STATEMENT и использование NEW&OLD
    #38596621
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AZvWarstoneпропущено...
А зачем вы это хотите сделать? (Я не издеваюсь, если что)
Сколько раз будет вызвана триггерная функция при вставке 100тыс. записей "пачкой"? Каковы будут при этом накладные расходы? а почему вы спрашиваете?



а если серьёзно - то вставку 100 тыс пачкой надо писать хранимкой, делающей и всё то, что вы хотели бы сделать триггером на стейтмент. а позаписный триггер (если вам нужен и он - для малых вставок) - отключать. И вообще уходить от мс-скл-ных привычек.


да, а с руле настолько всё не так хорошо, как хотелось бы, что лучше не надо. закопайте руле где нашли, и всех советчиков туда же.
...
Рейтинг: 0 / 0
Триггеры FOR STATEMENT и использование NEW&OLD
    #38596656
AZv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqа если серьёзно - то вставку 100 тыс пачкой надо писать хранимкой, делающей и всё то, что вы хотели бы сделать триггером на стейтмент. а позаписный триггер (если вам нужен и он - для малых вставок) - отключать.

Капитан Очевидность? (шутка, если что)
100 тыс. записей в моем случае - гипербола. Их изрядно меньше, но и требования к скорострельности высоки.
Не вдаваясь в дальнейшие подробности - триггер (в нормальной реализации) в данном случае был бы лучшим решением. Ну, раз нет, так нет...


qwwqИ вообще уходить от мс-скл-ных привычек.
Не, уходить надо от "мощнейшей СУБД, оставляющей далеко за флагом жалкие поделки всяких там Ораклов и Мелкософтов".
(не для раздувания холивора, а просто желчь выплеснуть (ибо достало слегка) - продолжения не будет).
А от полезных привычек мы уходить не будем :-)


qwwqда, а с руле настолько всё не так хорошо, как хотелось бы, что лучше не надо. закопайте руле где нашли, и всех советчиков туда же.
"я так и знал!" (с)
А если серьёзно - спасибо за предупреждение.
...
Рейтинг: 0 / 0
Триггеры FOR STATEMENT и использование NEW&OLD
    #38596815
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AZv <>
qwwqИ вообще уходить от мс-скл-ных привычек.
Не, уходить надо от "мощнейшей СУБД, оставляющей далеко за флагом жалкие поделки всяких там Ораклов и Мелкософтов".
(не для раздувания холивора, а просто желчь выплеснуть (ибо достало слегка) - продолжения не будет).
А от полезных привычек мы уходить не будем :-)

<>
ну так уходите
что-то мешает ?
вас сюда насильно кто-то загнал ?



не смотря на то, что мс-скл-стайл агрегирующий триггер на стейтмент по inserted/deleted таки мог бы быть удобен
в некотором смысле
однако, раз в ара-кале такого нет, то и в пж скорее всего не будет
...
Рейтинг: 0 / 0
Триггеры FOR STATEMENT и использование NEW&OLD
    #38596884
AZv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqну так уходите

рад бы в рай - да грехи не пускают... :-)

...вот и приходится "решать задачи, действуя в жестких рамках существующих ограничений" (с)
...
Рейтинг: 0 / 0
Триггеры FOR STATEMENT и использование NEW&OLD
    #38597001
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AZvСколько раз будет вызвана триггерная функция при вставке 100тыс. записей "пачкой"? Каковы будут при этом накладные расходы?А покажите Ваши тесты, если можно, пожалуйста. Интересно посмотреть/сравнить каковы у Вас при этом накладные расходы и что Вы ожидаете от СУБД.
...
Рейтинг: 0 / 0
Триггеры FOR STATEMENT и использование NEW&OLD
    #38597146
AZv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЁшА покажите Ваши тесты
Готовых нет, усекать до приемлимого состояния рабочий код - небыстро, проще написать что-нибудь чисто тестовое. Надо?

Не, если у вас есть сокровенное знание об эффективности ROW-триггеров - выкладывайте сразу, без риторических вопросов...

Ёшчто Вы ожидаете от СУБД.
В данном конкретном случае или вообще? :-)
...
Рейтинг: 0 / 0
Триггеры FOR STATEMENT и использование NEW&OLD
    #38597167
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AZv <>
Не, если у вас есть сокровенное знание об эффективности ROW-триггеров - выкладывайте сразу, без риторических вопросов...
<>ай, командир, ай кроссафчег

шли бы вы вася, ... лесом



любой нуб в мсскл первым делом проникается идеей массовой обработки inserted/deleted и это сокровенное знание поднимает его в собсных глазах
придя в область, где искомых пимпочек не обнаруживается, оный нуб начинает шумно выделять газы
не вы первый
обтекайте
т.е. это несколько ожыдаемо
//было и в моей частной истории знакомства с пж.

аккуратно посмотрите на руле, но это настолько обложено граблями во всех возимоных и неожиданных местах, что вряд ли вы сумеете протиснуться в.
...
Рейтинг: 0 / 0
Триггеры FOR STATEMENT и использование NEW&OLD
    #38597281
AZv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqшли бы вы вася, ... лесом
Благодарю за полезнейший и, что немаловажно, доброжелательный совет. Не замедлю последовать.
...
Рейтинг: 0 / 0
Триггеры FOR STATEMENT и использование NEW&OLD
    #38598374
Фотография Warstone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AZv,

А никто не думал что в мсскл стейтмент триггеры сделаны такими, потому что у них роу триггеры дают бешенный оверхед и проще - стейтментами.

В Пг и Оракле - не проще. И я могу объяснить:

Во-первых: мсскл - блокировочник. А для блокировочника создать времяночку - просто. Для версионника - дорого. Очень дорого (в случае с триггером).
Во-вторых: мсскл - блокировочник. Для блокировочника - медленные построчные триггеры - это кривость рук. Для версионника - возможность "несоздавать" версионную табличку - радость.

Короче... Построчные триггеры в Версионнике - это клева. Стейтовые с таблицей - медленное и убогое. Включите версионность и мсскл и попадайте внутри триггера стейтового(всмысле поставьте там слип и по -9 прибейте процесс)... Должны узнать много нового.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Триггеры FOR STATEMENT и использование NEW&OLD
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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