सांख्यिकी लक्ष्य की सेटिंग कैटलॉग तालिका pg_attribute
. में प्रति स्तंभ संग्रहीत की जाती है . आप इसे इस तरह सेट कर सकते हैं:
ALTER TABLE myschama.mytable ALTER mycolumn SET STATISTICS 127;
और इसे इस तरह जांचें:
SELECT attstattarget
FROM pg_attribute
WHERE attrelid = 'myschama.mytable'::regclass
AND attname = 'mycolumn';
या आप केवल pgAdmin के ऑब्जेक्ट ब्राउज़र में निर्माण स्क्रिप्ट को देखें, जहां इसे जोड़ा जाता है यदि मान default_statistics_target
में डिफ़ॉल्ट से अलग है ।
मैं मैनुअल को attstattarget
. पर उद्धृत करता हूं :
attstattarget ANALYZE
. द्वारा इस कॉलम के लिए संचित आंकड़ों के विवरण के स्तर को नियंत्रित करता है . एक शून्य मान इंगित करता है कि कोई आंकड़े एकत्र नहीं किए जाने चाहिए। एक ऋणात्मक मान सिस्टम डिफ़ॉल्ट सांख्यिकी लक्ष्य का उपयोग करने के लिए कहता है। सकारात्मक मूल्यों का सटीक अर्थ डेटाटाइप-निर्भर है। स्केलर डेटा प्रकारों के लिए, attstattarget एकत्रित करने के लिए "सबसे सामान्य मानों" की लक्ष्य संख्या और बनाने के लिए हिस्टोग्राम डिब्बे की लक्ष्य संख्या दोनों है।
बोल्ड मेरा जोर।
प्लेन इंडेक्स कॉलम के आंकड़े कॉलम के आंकड़ों के समान होते हैं और स्टैटिस्टिक्स टेबल में अलग से कोई एंट्री नहीं होती है। लेकिन Postgres इंडेक्स एक्सप्रेशन . के लिए अलग-अलग आंकड़े एकत्र करता है . इन्हें इसी तरह से बदला जा सकता है:
ALTER INDEX myschema.myidx ALTER COLUMN 1 SET STATISTICS 128;
वास्तविक कॉलम नामों की अनुपस्थिति में, इंडेक्स कॉलम को संबोधित करने के लिए क्रमिक संख्याओं का उपयोग किया जाता है, जो pg_attribute.attnum
के अनुरूप होते हैं। :
SELECT attstattarget
FROM pg_attribute
WHERE attrelid = 'myschama.myidx'::regclass
AND attnum = 1;
अगली बार ANALYZE
. पर सेटिंग केवल स्तंभ आंकड़ों को प्रभावित करती है मैन्युअल रूप से या autovacuum
. द्वारा चलाया जा रहा है ।