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

PostgreSQL प्रदर्शन - चुनें बनाम संग्रहीत कार्य

योजनाकार को आपकी क्वेरी में समस्या है क्योंकि यह फ़ंक्शन के निष्पादन समय का मूल्यांकन नहीं कर सकता है। इस मामले में योजनाकार को फ़ंक्शन की अनुमानित निष्पादन लागत मिलती है, जिसे create function... में परिभाषित किया जा सकता है या alter function... . हालांकि, अगर आप इस क्वेरी को आजमाते हैं:

explain analyse select * from test(10);

आप देखेंगे कि निष्पादन का समय कहीं अधिक यथार्थवादी है।

तुलना करें:

test=# explain analyse select test(1000);
                                        QUERY PLAN
------------------------------------------------------------------------------------------
 Result  (cost=0.00..5.25 rows=1000 width=0) (actual time=0.830..1.220 rows=1000 loops=1)
 Planning time: 0.038 ms
 Execution time: 1.250 ms
(3 rows)

बनाम:

test=# explain analyse select * from test(1000);
                                                   QUERY PLAN
----------------------------------------------------------------------------------------------------------------
 Limit  (cost=0.00..37.42 rows=1000 width=4) (actual time=0.006..0.124 rows=1000 loops=1)
   ->  Seq Scan on test_table  (cost=0.00..2560.28 rows=68428 width=4) (actual time=0.005..0.102 rows=1000 loops=1)
 Planning time: 0.130 ms
 Execution time: 0.144 ms
(4 rows)


test=# explain analyse select * from test_table limit 1000;
                                                    QUERY PLAN
------------------------------------------------------------------------------------------------------------------
 Limit  (cost=0.00..37.42 rows=1000 width=269) (actual time=0.009..0.118 rows=1000 loops=1)
   ->  Seq Scan on test_table  (cost=0.00..2560.28 rows=68428 width=269) (actual time=0.008..0.097 rows=1000 loops=1)
 Planning time: 0.076 ms
 Execution time: 0.151 ms
(4 rows)

दो अंतिम योजनाओं की समानता पर ध्यान दें। टेबल फ़ंक्शंस (फ़ंक्शंस जो इस मामले में पंक्तियों या तालिका के सेट को लौटाते हैं) को FROM में कॉल किया जाना चाहिए खंड। कुछ शर्तों के तहत उन्हें इनलाइन किया जा सकता है।

और पढ़ें:एसक्यूएल फ़ंक्शन को इनलाइन करना




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रूबी सीक्वल मणि - pg_array एक्सटेंशन के साथ सरणियों को कैसे क्वेरी करें

  2. यूटीएफ -8 के साथ JSON फ़ील्ड के अंदर SQLAlchemy टेक्स्ट मिलान डेटा

  3. स्पष्टीकरण द्वारा कस्टम आदेश

  4. PostgreSQL में महीने के हिसाब से ग्रुप कैसे करें

  5. PostgreSQL:स्तंभ परिभाषा सूची का उपयोग किए बिना तालिका से गतिशील पंक्तियों को कैसे वापस करें?