— отрабатывает один час. Затем прохожу по всем строкам и складываю их в dict — неожиданно, ещё один час. Вопрос: может ли быть такое, что банальная итерация по строкам занимает столько же времени, сколько сам запрос? Строк чуть больше миллиона.
Есть и нет.
Я кажется понимаю в чём проблема. cursor.execute() НЕ ВЫПОЛНЯЕТ запрос до конца. Он только НАЧИНАЕТ ВЫПОЛНЯТЬ запрос и формирует первую порцию данных. Остальные данные ВЫЧИСЛЯЮТСЯ по мере продвижения по курсору вперёд. В общем, твои представления о том, как мерить время запроса, немного неверны. Надо открыть курсор, и профетчить все данные
Питонасты..
Обсуждают сегодня