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

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

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



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


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

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


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


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

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



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

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

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

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

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

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



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

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

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

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

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

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


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