Функция работает вечно для большого количества записей

Я создал следующую функцию в Postgres 9.3.5:

CREATE OR REPLACE FUNCTION get_result(val1 text, val2 text)
RETURNS text AS 
$BODY
$Declare

result text;

BEGIN

select min(id) into result from table 
where id_used is null and id_type = val2;

update table set 
id_used = 'Y', 
col1 = val1,  
id_used_date = now() 
where id_type = val2 
and id = result;

RETURN result;

END;

$BODY$
LANGUAGE plpgsql VOLATILE COST 100;

Когда я запускаю эту функцию в цикле из 1000 или более записей, она просто останавливается и просто говорит «запрос выполняется». Когда я проверяю свою таблицу, ничего не обновляется. Когда я запускаю его для одной или двух записей, он работает нормально.

Пример функции при запуске:

select get_result('123','idtype');

столбцы таблицы:

id character varying(200),
col1 character varying(200),
id_used character varying(1),
id_used_date timestamp without time zone,
id_type character(200)

id это индекс таблицы.

Может кто-нибудь помочь?

Ответы на вопрос(1)

Ваш ответ на вопрос