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

उत्पादन परिणामों में प्रश्नों को असामान्य रूप से उच्च डिस्क रीड I/O . में पोस्टग्रेज करता है

इस क्वेरी ने कोई डिस्क I/O उत्पन्न नहीं की - सभी ब्लॉक साझा बफर से पढ़े जाते हैं। लेकिन चूंकि क्वेरी 73424 ब्लॉक (लगभग 574 एमबी) पढ़ती है, यह तालिका के कैश नहीं होने पर पर्याप्त I/O लोड उत्पन्न करेगी।

लेकिन दो चीजें हैं जिन्हें सुधारा जा सकता है।

  • आपके पास हानिकारक ब्लॉक मिलान . हैं ढेर स्कैन में। इसका मतलब है कि work_mem बिटमैप को प्रति तालिका पंक्ति के साथ रखने के लिए पर्याप्त बड़ा नहीं है, और इसके बजाय 26592 बिट्स तालिका ब्लॉक को मैप करते हैं। सभी पंक्तियों को फिर से जांचना पड़ता है, और 86733 पंक्तियों को छोड़ दिया जाता है, जिनमें से अधिकांश हानिपूर्ण ब्लॉक मैचों से झूठी सकारात्मक होती हैं।

    अगर आप work_mem increase बढ़ाते हैं , बिट प्रति तालिका पंक्ति वाला बिटमैप मेमोरी में फ़िट हो जाएगा, और यह संख्या सिकुड़ जाएगी, जिससे हीप स्कैन के दौरान काम कम हो जाएगा।

  • 190108 पंक्तियों को छोड़ दिया जाता है क्योंकि वे बिटमैप हीप स्कैन में अतिरिक्त फ़िल्टर स्थिति से मेल नहीं खाती हैं। शायद यही वह जगह है जहां ज्यादातर समय बिताया जाता है। यदि आप उस राशि को कम कर सकते हैं, तो आप जीतेंगे।

    इस क्वेरी के लिए आदर्श इंडेक्स होंगे:

    CREATE INDEX ON map_listing(transaction_type, la);
    CREATE INDEX ON map_listing(transaction_type, lo);
    

    अगर transaction_type बहुत चयनात्मक नहीं है (अर्थात, अधिकांश पंक्तियों का मान Sale . है ), आप उस कॉलम को छोड़ सकते हैं।

संपादित करें:

vmstat . की परीक्षा और iostat दिखाता है कि सीपीयू और आई/ओ सबसिस्टम दोनों बड़े पैमाने पर अधिभार से पीड़ित हैं:सभी सीपीयू संसाधन I/O प्रतीक्षा और वीएम चोरी के समय पर खर्च किए जाते हैं। आपको एक बेहतर I/O सिस्टम और अधिक मुक्त CPU संसाधनों के साथ एक होस्ट सिस्टम की आवश्यकता है। रैम माइगजेट बढ़ाने से I/O समस्या कम हो जाती है, लेकिन केवल डिस्क रीड करने के लिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django, mod_wsgi, psycopg2 अनुचित रूप से कॉन्फ़िगर किया गया:psycopg2 मॉड्यूल लोड करने में त्रुटि:_psycopg नामक कोई मॉड्यूल नहीं

  2. पोस्टग्रेज:एरे में एग्रीगेट कॉलम

  3. एक ताजा रेल परियोजना में SQLite से PostgreSQL में बदलें

  4. निर्देशित चक्रीय ग्राफ:एक विशिष्ट नोड से सभी पथ खोजें

  5. PostgreSQL में एन्क्रिप्टेड पासवर्ड के साथ उपयोगकर्ता बनाना