PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

ORDER और LIMIT क्लॉज के साथ बेहद धीमी PostgreSQL क्वेरी

जब आपके पास LIMIT और ORDER BY दोनों होते हैं, तो ऑप्टिमाइज़र ने फैसला किया है कि फू पर अनफ़िल्टर्ड रिकॉर्ड्स के माध्यम से कुंजी अवरोही द्वारा लंगड़ा करना तेज़ है, जब तक कि इसे बाकी मानदंडों के लिए पांच मैच नहीं मिलते। अन्य मामलों में, यह केवल क्वेरी को नेस्टेड लूप के रूप में चलाता है और सभी रिकॉर्ड लौटाता है।

ऑफहैंड, मैं कहूंगा कि समस्या यह है कि पीजी संयुक्त . को टटोलता नहीं है विभिन्न आईडी का वितरण और इसीलिए योजना इतनी उप-इष्टतम है।

संभावित समाधानों के लिए:मैं मान लूंगा कि आपने हाल ही में ANALYZE चलाया है। यदि नहीं तो ऐसा करें। यह समझा सकता है कि तेजी से लौटने वाले संस्करण पर भी आपका अनुमानित समय अधिक क्यों है। यदि समस्या बनी रहती है, तो शायद ORDER BY को उप-चयन के रूप में चलाएँ और बाहरी क्वेरी में LIMIT को थप्पड़ मारें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जांचें कि क्या पोस्टग्रेज JSON सरणी में एक स्ट्रिंग है

  2. concat_ws . का अपरिवर्तनीय क्लोन बनाएं

  3. एक नाम को उपनाम और आद्याक्षर में कैसे विभाजित करें

  4. मैं एक विदेशी कुंजी तालिका को दो बार कैसे संदर्भित करूं?

  5. Postgresql सुपरसुसर के रूप में "बनाया गया" के साथ डीबी नहीं बना रहा है, फिर भी त्रुटियों को आउटपुट नहीं कर रहा है