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

आप Postgres . में अपनी सभी तालिकाओं के लिए पंक्ति गणना कैसे प्राप्त करते हैं?

इस प्रकार की गिनती प्राप्त करने के तीन तरीके हैं, प्रत्येक का अपना ट्रेडऑफ़ है।

यदि आप एक वास्तविक गणना चाहते हैं, तो आपको प्रत्येक तालिका के विरुद्ध उपयोग किए जाने वाले चयन कथन को निष्पादित करना होगा। ऐसा इसलिए है क्योंकि PostgreSQL पंक्ति दृश्यता जानकारी को पंक्ति में ही रखता है, कहीं और नहीं, इसलिए कोई भी सटीक गणना केवल कुछ लेनदेन के सापेक्ष हो सकती है। आप उस लेन-देन की गिनती प्राप्त कर रहे हैं जब वह उस समय निष्पादित होता है जब वह निष्पादित होता है। आप इसे डेटाबेस में प्रत्येक तालिका के विरुद्ध चलाने के लिए स्वचालित कर सकते हैं, लेकिन आपको शायद उस स्तर की सटीकता की आवश्यकता नहीं है या आप इतना लंबा इंतजार करना चाहते हैं।

दूसरा दृष्टिकोण नोट करता है कि सांख्यिकी संग्राहक किसी भी समय मोटे तौर पर कितनी पंक्तियों को "लाइव" (हटाए गए या बाद के अपडेट द्वारा अप्रचलित नहीं) ट्रैक करता है। भारी गतिविधि के तहत यह मान थोड़ा कम हो सकता है, लेकिन आम तौर पर यह एक अच्छा अनुमान है:

SELECT schemaname,relname,n_live_tup 
  FROM pg_stat_user_tables 
  ORDER BY n_live_tup DESC;

यह आपको यह भी दिखा सकता है कि कितनी पंक्तियाँ मृत हैं, जो अपने आप में निगरानी के लिए एक दिलचस्प संख्या है।

तीसरा तरीका यह नोट करना है कि सिस्टम ANALYZE कमांड, जिसे ऑटोवैक्यूम प्रक्रिया द्वारा नियमित रूप से PostgreSQL 8.3 के रूप में तालिका आँकड़ों को अद्यतन करने के लिए निष्पादित किया जाता है, एक पंक्ति अनुमान की गणना भी करता है। आप उसे इस तरह पकड़ सकते हैं:

SELECT 
  nspname AS schemaname,relname,reltuples
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE 
  nspname NOT IN ('pg_catalog', 'information_schema') AND
  relkind='r' 
ORDER BY reltuples DESC;

इनमें से कौन सा प्रश्न उपयोग करना बेहतर है, यह कहना मुश्किल है। आम तौर पर मैं यह निर्णय इस आधार पर लेता हूं कि क्या और अधिक उपयोगी जानकारी है जिसे मैं pg_class के अंदर या pg_stat_user_tables के अंदर उपयोग करना चाहता हूं। गिनती के बुनियादी उद्देश्यों के लिए केवल यह देखने के लिए कि सामान्य रूप से कितनी बड़ी चीजें हैं, या तो पर्याप्त सटीक होना चाहिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres '\connect कमांड का JDBC प्रतिरूप क्या है?

  2. PostgreSQL में तिथियों के साथ कार्य करना

  3. PostgreSQL के लिए एक इष्टतम वातावरण की स्थापना

  4. pgadmin के साथ एक Heroku डेटाबेस से कनेक्ट करें

  5. PostgreSQL डेटाबेस कॉलम से केवल संख्यात्मक मान लौटाएं