Re: Frontend/Backend protocol changes?

Поиск
Список
Период
Сортировка
От Jason E. Stewart
Тема Re: Frontend/Backend protocol changes?
Дата
Msg-id 877kf5a5md.fsf@openinformatics.com
обсуждение исходный текст
Ответ на Re: Frontend/Backend protocol changes?  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-interfaces
Hey Tom,

"Tom Lane" <tgl@sss.pgh.pa.us> writes:

> I dunno who the heck you got that advice from, but *none* of those
> statements are correct, at least not in recent PG releases.

Well, that's refreshing.

> You definitely want to do lots of inserts per transaction.  There's
> probably not much further improvement to be had beyond a thousand or so
> rows per transaction, though.

OK, that's good, too.

> COPY is faster than a series of INSERTs because you bypass the
> parsing and planning overhead needed for each insert.

Ok.

> But my suspicion is that the cycles are actually going into your
> triggers.  What triggers have you got on this table, and what are they
> doing?

Just one trigger, it tracks who inserted the row and when, and adds
this as a row to the Audit table. I keep an audit trail, so that if
it's an update (which it isn't in the case I'm writing about) I chain
the most recent audit to the previous one. I'm including the code at
the end.

If there's a better way to do this, I'd happily remove the trigger.

Thanks,
jas.
--
 CREATE OR REPLACE FUNCTION audit () RETURNS OPAQUE AS '     DECLARE        ts TIMESTAMP := ''now'';        new_audit
INT4:= nextval(''"GENEX_ID_SEQ"''::text);     BEGIN        IF TG_OP = ''INSERT'' THEN          INSERT INTO Audit_view
(audit_pk, modification_date, modified_by)                      VALUES (new_audit, ts, user());        ELSE
/*for UPDATE we keep a trail of audits */          INSERT INTO Audit_view
(audit_pk,audit_fk,modification_date,modified_by)                     VALUES (new_audit,OLD.audit_fk,ts,user());
ENDIF;         UPDATE tableadmin SET audit_fk = new_audit               WHERE UPPER(table_name) =
UPPER(text(TG_RELNAME));        NEW.audit_fk := new_audit;        RETURN NEW;     END; ' LANGUAGE 'plpgsql';
 


В списке pgsql-interfaces по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Frontend/Backend protocol changes?
Следующее
От: "Jason E. Stewart"
Дата:
Сообщение: Re: Frontend/Backend protocol changes?