Задать вопрос
@Misuta

Почему на одном пк sql запрос выполняется, а на другом нет?

Есть два postgresql, на моем личном пк, и на виртуальной машине с windows server. Также на моем пк есть база, размером 520 гб.

Еще есть sql запрос
--------------------------------------------------
-- Список таблиц для которых нужно обновить LastId
--------------------------------------------------
do $$
declare 
x citext;
begin
for x in select  ids.TableName
  from Sungero_System_Ids ids
  where ids.TableName <> 'Sungero_System_Setting'
    and ids.TableName <> 'Sungero_System_FolderTag'
 loop
  begin
   EXECUTE Format('update Sungero_System_Ids set LastId = (select COALESCE(max(id),0) from %s) 
            where Sungero_System_Ids.TableName = $1', x, x, x) USING x;
   raise notice 'Update LastID for %', x;
   EXCEPTION
   when undefined_table then
    raise notice 'Table %s not exists', x;
  end;
 end loop;
--------------------------------------------------
-- Отдельно обновить счетчик для таблиц с историей
--------------------------------------------------
update Sungero_System_Ids
  set LastId = (select max(ids.LastId)
                      from Sungero_System_Ids ids
       where ids.TableName like '%history%'
                        and ids.TableName <> 'Sungero_Core_History')
  where Sungero_System_Ids.TableName = 'Sungero_Core_History';
end$$;


На моем пк запрос отрабатывает примерно за 8 секунд.

Когда я развернул бекап этой же базы на виртуалке и запустил этот же sql запрос, то он выполнялся 16 суток, потом я его прервал. С чем может быть связано такое длительное выполнение sql запроса?

По производительности пк и виртуалка на сервере примерно одинаковые.
Смущает то, что даже не появляются никакие логи из цикла (raise notice 'Update LastID for %', x;)
  • Вопрос задан
  • 88 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
sergey-gornostaev
@sergey-gornostaev Куратор тега PostgreSQL
Седой и строгий
Посмотрите план выполнения. Возможно, в виртуалке индексы не построены.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы