powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Долго отрабатывает процедура
2 сообщений из 2, страница 1 из 1
Долго отрабатывает процедура
    #33492811
puzzle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,
проблема в следущем идет поток данных на вставку в таблицу необходимо его обрабатывать (делать нарезку по данным, в данном случае "по минуте") и в другую таблицу вставлять эти данные.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
declare
  tts_ timestamptz;
begin
  tts_ = date_trunc( 'minute', new."TTS" );

  update "RIM_TOD_MIN" set
    "OPEN" = case
      when new."TTS" < "TTS_OPEN" then new."LAST"
      else "OPEN" end,
    "HIGH" = case
      when new."LAST" > "HIGH" then new."LAST"
      else "HIGH" end,
    "LOW" = case
      when new."LAST" < "LOW" then new."LAST"
      else "LOW" end,
    "CLOSE" = case
      when new."TTS" > "TTS_CLOSE" then new."LAST"
      else "CLOSE" end,
    "VOL" = "VOL"+new."VOLLOT",
    "TTS_OPEN" = case
      when new."TTS" < "TTS_OPEN" then new."TTS"
      else "TTS_OPEN" end,
    "TTS_CLOSE" = case
      when new."TTS" >= "TTS_CLOSE" then new."TTS"
      else "TTS_CLOSE" end
    where "TTS"=tts_ and "NAME"=new."NAME";
  if not found
  then

    insert into "RIM_TOD_MIN"
      ( "NAME", "TTS",
        "OPEN", "HIGH", "LOW", "CLOSE", "VOL",
        "TTS_OPEN", "TTS_CLOSE" )
      values( new."NAME", tts_,
        new."LAST", new."LAST", new."LAST", new."LAST", new."VOLLOT",
        new."TTS", new."TTS" );
  end if;
  return null;
end

пробовал отклычить:

Код: plaintext
set local enable_seqscan = false;

помогает, но не существенно.
Может как-то изменить алгоритм или сделать что-то еще, заранее благодарен.
...
Рейтинг: 0 / 0
Долго отрабатывает процедура
    #33493580
victor_kr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какой интенсивности поток? Seqscan лучше не отключать, полезная штука. case скорее всего можно заменить функциями типа int4larger, int4smaller. Будет красивее и возможно быстрее. Функции должны быть для всех типов. Как часто выполняется analyze?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Долго отрабатывает процедура
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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