इसके बजाय एक कर्सर का प्रयोग करें। OFFSET और LIMIT का उपयोग करना बहुत महंगा है - क्योंकि pg को एक OFFSET पंक्तियों को क्वेरी, प्रोसेस और स्किप करना होता है। OFFSET "स्किप रो" की तरह है, जो महंगा है।
कर्सर एक क्वेरी पर पुनरावृत्ति की अनुमति देता है।
BEGIN
DECLARE C CURSOR FOR SELECT * FROM big_table;
FETCH 300 FROM C; -- get 300 rows
FETCH 300 FROM C; -- get 300 rows
...
COMMIT;
संभवतः आप DECLARE कथन का स्पष्ट उपयोग किए बिना सर्वर साइड कर्सर का उपयोग कर सकते हैं, बस psycopg<में समर्थन के साथ /ए> (सर्वर साइड कर्सर के बारे में खोज अनुभाग)।