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

PostgreSQL में एक फ़ंक्शन से वापसी तालिका प्रकार

आपका कार्य बहुत कुछ कर रहा है खाली काम का।

आप FOR . के साथ सरल बना सकते हैं अधिक थकाऊ और महंगे स्पष्ट कर्सर के बजाय निहित कर्सर के साथ लूप।
एक करीब से देखने पर पता चलता है कि आपको इसकी बिल्कुल भी आवश्यकता नहीं है। मौलिक रूप से सरल करें एक साधारण क्वेरी के साथ। मैंने इसे एक SQL फ़ंक्शन में लपेटा:

CREATE OR REPLACE FUNCTION ccdb.fn_email_details_auto()
  RETURNS TABLE (code integer, area smallint, action smallint, flag smallint
               , ucount integer, view_cnt integer) AS
$func$

SELECT u.section_code, u.ddu_area, u.ddu_action, u.status_flag
     , u.ccdb_ucount, u.ccdb_view_cnt
FROM   ccdb.update_qtable u
WHERE  u.entry_time >= now()::date - 1
AND    u.entry_time <  now()::date        -- sargable!
ORDER  BY u.section_code, u.ddu_area, u.ddu_action;

$func$  LANGUAGE sql;

बहुतहोना चाहिए इसे वापस करते समय तेज़।
इसके अलावा, इसका उपयोग करें:

WHERE  u.entry_time >= now()::date - 1
AND    u.entry_time <  now()::date

इसके बजाय:

WHERE entry_time::date = now()::date - interval '1 day'

विकल्प सारगर्भित है और entry_time . पर एक सादे अनुक्रमणिका का उपयोग कर सकता है , जो प्रदर्शन के लिए महत्वपूर्ण होना चाहिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. लेखन त्रुटि:'int' ऑब्जेक्ट अनुक्रमण का समर्थन नहीं करता

  2. पीजीपूल के लिए एक गाइड - संकेत और अवलोकन:भाग तीन

  3. Php . में एकाधिक तालिकाओं के लिए क्वेरी लिखना

  4. विशिष्ट तालिकाओं और प्रविष्टियों के लिए एक डेटाबेस डंप बनाना Postgres

  5. 2019 PostgreSQL रुझान रिपोर्ट:निजी बनाम सार्वजनिक क्लाउड, माइग्रेशन, डेटाबेस संयोजन और उपयोग किए जाने वाले शीर्ष कारण