обновить (upsert) около 100к строк. Если я это делаю непосредственно внутри, через PgAdmin, это занимает 4 сек, а через питоновский метод executemany это почти час :((( как можно ускорить?
например, привести код
кода пока нет, я ж и спрашиваю чем отправить и поймать SNMP
Но он не тебе отвечал
по запросу python snmp чем не подошли варианты?
try: with closing( self.__getCursor() ) as conn: conn.autocommit = autocommit with conn.cursor() as cursor: cursor.executemany(sql, data) result['rowcount'] = cursor.rowcount except psycopg2.Error as e: raise ValueError(f'''Error in ExecuteRequest: {sql}\r\n Error: {e} ''')
медленно и слишком громоздко
INSERT INTO public.myTable( c_1, c_2, c_3, c_4, c_5 ) VALUES ( %s, %s, %s, %s, %s ) ON CONFLICT ON CONSTRAINT "mainconstraint_pk" DO UPDATE SET c_3 = EXCLUDED.c_3, c_4 = EXCLUDED.c_4, c_5 = EXCLUDED.c_5
Случайно автокоммит не юзаешь?
Обсуждают сегодня