Мой код выглядит следующим образом:
LOOP
EXIT WHEN TIMESTAMP_START >= TIMESTAMP_END;
INSERT INTO datapoint_values (dp_id, ts, int_value)
VALUES (NODE_ID, TIMESTAMP_START, INIT_D);
INIT_D := smooth_random_double(INIT_D, STEP_D, MIN_D, MAX_D);
TIMESTAMP_START := TIMESTAMP_START + STEP;
END LOOP;
Я делаю много (в среднем 300000) одиночных вставок.Есть ли способы оптимизировать вставки?Например, каким-то образом соединить их вместе и выполнить массовую вставку.Или есть другие "низко висящие фрукты"?
РЕДАКТИРОВАТЬ 1
CREATE OR REPLACE FUNCTION smooth_random_double(VAL double precision, STEP double precision,
MIN double precision,
MAX double precision) RETURNS double precision AS
$rand_smooth_double$
BEGIN
VAL := VAL + random() * STEP * 2 - STEP;
IF VAL > MAX THEN
RETURN MAX;
ELSIF VAL < MIN THEN
RETURN MIN;
END IF;
RETURN VAL;
END;
$rand_smooth_double$ LANGUAGE plpgsql;