Postgres पर idx_tup_read और idx_tup_fetch के बीच अंतर


12

जब आप करते हैं तो Postgres 8.4 पर:

select * from pg_stat_all_indexes where relname = 'table_name';

यह idx_tup_read और idx_tup_fetch फ़ील्ड को लौटाता है, क्या अंतर है?

जवाबों:


13

जब देखने के स्रोत कोड देख, तो आप उस देखेंगे idx_tup_readबुला का परिणाम है pg_stat_get_tuples_returned()और idx_tup_fetchफोन करने का परिणाम हैpg_stat_get_tuples_fetched()

मैनुअल दो कार्यों का वर्णन इस प्रकार है:

pg_stat_get_tuples_returned (OID)

तर्क तालिका होने पर अनुक्रमिक स्कैन द्वारा पढ़ी जाने वाली पंक्तियों की संख्या, या तर्क अनुक्रमणिका होने पर अनुक्रमणिका प्रविष्टियों की संख्या लौटा दी जाती है

pg_stat_get_tuples_fetched (OID)

जब एक तालिका होती है तो बिटमैप स्कैन द्वारा लाए गए टेबल पंक्तियों की संख्या, या इंडेक्स का उपयोग करते हुए सरल इंडेक्स स्कैन द्वारा प्राप्त तालिका पंक्तियाँ, जब एक इंडेक्स होता है


1

से PostgreSQL डॉक्स ,

idx_tup_read is number of index entries returned by scans on this index
idx_tup_fetch is number of live table rows fetched by simple index scans using this index

इसलिए, readएस तब होते हैं जब सूचकांक आवश्यक पंक्ति की स्थिति वापस देता है और fetchतों तब होता है जब सूचकांक तालिका की पंक्तियों को स्वयं वापस देता है।


0

आधिकारिक प्रलेखन पृष्ठ कहता है कि उनके बीच का अंतर दिखाई देता है:

  1. जब सूचकांक बिटमैप इंडेक्स स्कैन में शामिल होता है
  2. यदि कोई मृत या नहीं-अभी तक प्रतिबद्ध पंक्तियों को सूचकांक का उपयोग करके लाया जाता है
  3. यदि किसी भी ढेर भ्रूण को केवल एक इंडेक्स स्कैन के माध्यम से टाला जाता है
  4. जब सूचकांक ऑप्टिमाइज़र के चेक द्वारा एक्सेस किया जाता है

इन सभी मामलों में idx_tup_readअधिक से अधिक हो जाता है idx_tup_fetch

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.