मेरा समाधान putback
को स्लाइस करना है प्रस्तावित यहां
के रूप में एक सरल कार्य के साथ :
def chunk(l, n):
n = max(1, n)
return [l[i:i + n] for i in range(0, len(l), n)]
और फिर
for chunk in chunk(putback, 250000):
curs.execute("UPDATE table1
SET col3 = p.result
FROM unnest(%s) p(sid INT, result JSONB)
WHERE sid = p.sid", (chunk,))
यह काम करता है, यानी मेमोरी फ़ुटप्रिंट को नियंत्रण में रखता है, लेकिन एक बार में सभी डेटा को डंप करने की तुलना में बहुत ही सुरुचिपूर्ण और धीमा नहीं है, जैसा कि मैं आमतौर पर करता हूं।