Shall I convert all my stored procedure to use "EXECUTE", to ensure I get index-scan

Поиск
Список
Период
Сортировка
От Yan Cheng Cheok
Тема Shall I convert all my stored procedure to use "EXECUTE", to ensure I get index-scan
Дата
Msg-id 442776.1596.qm@web65708.mail.ac4.yahoo.com
обсуждение исходный текст
Ответы Re: Shall I convert all my stored procedure to use "EXECUTE", to ensure I get index-scan  (Sam Mason <sam@samason.me.uk>)
Список pgsql-general
By refering to http://archives.postgresql.org/pgsql-general/2010-01/msg00846.php

It solves speed problem in stored procedure, which use function parameter, during its SQL query.

Does this means, I shall convert *ALL* my stored procedure, which use function parameter during its SQL query, to use
EXECUTE,to ensure I always get index-scan? 

For example :

convert :

CREATE OR REPLACE FUNCTION update_lot_end_timestamp(bigint)
  RETURNS timestamp AS
$BODY$DECLARE
    _lotID ALIAS FOR $1;
    _timestamp timestamp;
BEGIN
    _timestamp = now();
    UPDATE lot SET timestamp = _timestamp WHERE lot_id = _lotID;
    return _timestamp;
END;$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;
ALTER FUNCTION update_lot_end_timestamp(bigint) OWNER TO postgres;

to


CREATE OR REPLACE FUNCTION update_lot_end_timestamp(bigint)
  RETURNS timestamp AS
$BODY$DECLARE
    _lotID ALIAS FOR $1;
    _timestamp timestamp;
BEGIN
    _timestamp = now();
    EXECUTE 'UPDATE lot SET timestamp = $1 WHERE lot_id = $2'
    USING _timestamp, _lotID;
    return _timestamp;
END;$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;
ALTER FUNCTION update_lot_end_timestamp(bigint) OWNER TO postgres;

Is there any rule of thumb to follow?

Thanks and Regards
Yan Cheng CHEOK





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

Предыдущее
От: Windows 7 Compatibility
Дата:
Сообщение: Application compatibility with Windows7
Следующее
От: Alan Millington
Дата:
Сообщение: Re: Error "invalid byte sequence for encoding UTF8" on insert into BYTEA column