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

अधिकतम के साथ क्वेरी द्वारा धीमे समूह को पोस्टग्रेज करता है

आपको जो चाहिए वह है "स्किप स्कैन" या "ढीला इंडेक्स स्कैन ". PostgreSQL का योजनाकार अभी तक उन्हें स्वचालित रूप से लागू नहीं करता है, लेकिन आप इसे पुनरावर्ती क्वेरी का उपयोग करके एक का उपयोग करने में धोखा दे सकते हैं।

WITH RECURSIVE  t AS (
SELECT min(eventtype) AS eventtype FROM allevents
           UNION ALL
SELECT (SELECT min(eventtype) as eventtype FROM allevents WHERE eventtype > t.eventtype)
   FROM t where t.eventtype is not null
)
select eventtype, (select max(eventtime) from allevents where eventtype=t.eventtype) from t;

उस क्वेरी के बाहर करने के बजाय अधिकतम (ईवेंटटाइम) को रिकर्सिव क्वेरी में संक्षिप्त करने का एक तरीका हो सकता है, लेकिन यदि ऐसा है तो मैंने उस पर हिट नहीं किया है।

कुशल होने के लिए इसे (ईवेंट टाइप, इवेंटटाइम) पर एक इंडेक्स की आवश्यकता होती है। आप इसे घटना के समय डीईएससी कर सकते हैं, लेकिन यह आवश्यक नहीं है। यह केवल तभी प्रभावी होता है जब ईवेंट प्रकार में केवल कुछ विशिष्ट मान हों (उनमें से 21, आपके मामले में)।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL आंशिक अद्वितीय अनुक्रमणिका और अपरर्ट

  2. क्लाइंट-साइड एप्लिकेशन बनाने के लिए सर्वर-साइड एक्सटेंशन या libpq-dev बनाने के लिए आपको postgresql-server-dev-X.Y इंस्टॉल करना होगा

  3. PostgreSQL में विभिन्न स्वामियों के साथ सभी तालिकाओं के लिए बाधाओं की सूची बनाएं

  4. मैं oracle dblink में पोस्टग्रेज कैसे बनाऊं?

  5. डॉकर निष्पादन - पर्यावरण चर के साथ पोस्टग्रेज को कॉल नहीं कर सकता