क्वेरी ऑप्टिमाइज़ेशन

Snowflake में डेटा मॉडलिंग परिचय

Nuno Rocha

Director of Engineering

क्वेरी एग्जिक्यूशन क्रम

क्वेरी एग्जिक्यूशन क्रम, पूरी क्वेरी

Snowflake में डेटा मॉडलिंग परिचय

क्वेरी एग्जिक्यूशन क्रम (1)

क्वेरी एग्जिक्यूशन क्रम; FROM

Snowflake में डेटा मॉडलिंग परिचय

क्वेरी एग्जिक्यूशन क्रम (2)

क्वेरी एग्जिक्यूशन क्रम; JOIN

Snowflake में डेटा मॉडलिंग परिचय

क्वेरी एग्जिक्यूशन क्रम (3)

क्वेरी एग्जिक्यूशन क्रम; WHERE

Snowflake में डेटा मॉडलिंग परिचय

क्वेरी एग्जिक्यूशन क्रम (4)

क्वेरी एग्जिक्यूशन क्रम; AGGREGATIONS

Snowflake में डेटा मॉडलिंग परिचय

क्वेरी एग्जिक्यूशन क्रम (5)

क्वेरी एग्जिक्यूशन क्रम; HAVING

Snowflake में डेटा मॉडलिंग परिचय

क्वेरी एग्जिक्यूशन क्रम (6)

क्वेरी एग्जिक्यूशन क्रम; SORT

Snowflake में डेटा मॉडलिंग परिचय

क्वेरी एग्जिक्यूशन क्रम (7)

क्वेरी एग्जिक्यूशन क्रम; LIMIT

Snowflake में डेटा मॉडलिंग परिचय

क्वेरी एग्जिक्यूशन क्रम (8)

अंतिम क्वेरी एग्जिक्यूशन क्रम

  • सर्वोत्तम अभ्यास:
    • SELECT * से बचें; केवल आवश्यक कॉलम चुनें
    • डेटा वॉल्यूम घटाने के लिए LIMIT लगाएँ
    • पंक्ति फ़िल्टरिंग और मेमोरी बचत के लिए WHERE शुरुआत में लगाएँ
    • सीमित डेटासेट पर एग्रीगेशन के साथ GROUP BY उपयोग कर प्रोसेसिंग ऑप्टिमाइज़ करें
Snowflake में डेटा मॉडलिंग परिचय

सबक्वेरीज़

सबक्वेरी निरूपण

Snowflake में डेटा मॉडलिंग परिचय

सबक्वेरीज़

होटल चेन लॉयल्टी डेटा मॉडल

Snowflake में डेटा मॉडलिंग परिचय

सबक्वेरीज़

  • उन सभी मेहमानों की क्वेरी करें जिनके पास 1000 से अधिक लॉयल्टी पॉइंट्स हैं
SELECT *
FROM guests
WHERE id IN (SELECT guest_id 
                  FROM loyalty_program 
                  WHERE loyalty_points > 1000);
Snowflake में डेटा मॉडलिंग परिचय

कॉमन टेबल एक्सप्रेशन

CTE

Snowflake में डेटा मॉडलिंग परिचय

कॉमन टेबल एक्सप्रेशन

  • नवीनतम बुकिंग विवरण की क्वेरी करें
WITH latest_booking AS (
    SELECT guest_id, 
           MAX(checkout_date) AS latest_checkout
    FROM booking_details
    GROUP BY guest_id
)
SELECT bd.*, 
       bd.checkout_date AS latest_booking_date
FROM booking_details bd
    JOIN latest_booking lb 
        ON bd.guest_id = lb.guest_id 
        AND bd.checkout_date = lb.latest_checkout;
Snowflake में डेटा मॉडलिंग परिचय

CTEs और सबक्वेरीज़

CTEs

  • फायदे

    • जटिल क्वेरी की पठनीयता बढ़ाता है
    • उसी क्वेरी में पुन:उपयोग सक्षम करता है
    • SQL क्वेरी का संगठन बेहतर करता है
  • नुकसान

    • परफॉर्मेंस ओवरहेड ला सकता है
    • केवल एक क्वेरी के दायरे तक सीमित

सबक्वेरीज़

  • फायदे

    • एकल उपयोग मामलों के लिए सरल और सीधा
    • SQL स्टेटमेंट के विभिन्न भागों में लचीला
  • नुकसान

    • जटिलता बढ़ने पर पठनीयता घटा सकता है
    • नेस्टेड होने पर संभावित परफॉर्मेंस समस्याएँ
Snowflake में डेटा मॉडलिंग परिचय

क्वेरी एग्जिक्यूशन समय को विज़ुअलाइज़ करना

क्वेरी प्रोफाइल पेज

Snowflake में डेटा मॉडलिंग परिचय

टर्मिनोलॉजी और फंक्शन अवलोकन

  • क्वेरी ऑप्टिमाइज़ेशन: क्वेरीज़ को ट्यून कर दक्षता और परफॉर्मेंस अधिकतम करना
  • सबक्वेरी: मुख्य क्वेरी के अंदर छोटी क्वेरी जो खास डेटा पर फोकस करती है
  • कॉमन टेबल एक्सप्रेशन (CTEs): क्वेरी के दौरान अस्थायी वर्चुअल टेबल
  • WITH .. AS: CTE परिभाषित करने का SQL कमांड
  • LIMIT: क्वेरी परिणामों में पंक्तियों की संख्या सीमित करने वाली SQL क्लॉज़
  • HAVING: SUM, MAX आदि जैसे फंक्शंस से एग्रीगेटेड डेटा को फ़िल्टर करने की SQL क्लॉज़
  • WHERE: ग्रुपिंग से पहले पंक्तियाँ फ़िल्टर करने की SQL क्लॉज़, जिससे क्वेरी दक्ष होती है
Snowflake में डेटा मॉडलिंग परिचय

उदाहरण CTE और सबक्वेरी टेम्पलेट

  • सबक्वेरी
SELECT *
FROM table_name
WHERE column_name IN (SELECT column_name 
                  FROM table_name
                  WHERE column_name condition value);
  • CTE
WITH latest_booking_dates AS (
    SELECT column_name
    FROM table_name)
SELECT *
FROM table_name a
    JOIN other_table_name b 
    ON a.key_column = b.key_column;
Snowflake में डेटा मॉडलिंग परिचय

अभ्यास करते हैं!

Snowflake में डेटा मॉडलिंग परिचय

Preparing Video For Download...