none
יעילות בהחזרת נתונים משאילתא? RRS feed

  • שאלה

  • כאשר אני מריץ שאילתא, למשל:

    select customer_name, customer_email, is_active

    from tbl_customers

    where is_active = 1

    האם יש הבדל אם אני מחזיר את ה is_active מהטבלה או שיותר יעיל (אפילו בקצת) להחזיר ערך קבוע בשאילתא? למשל:

    select customer_name, customer_email, 1 as is_active

    from tbl_customers

    where is_active = 1

    יום ראשון 30 דצמבר 2012 05:34

תשובות

  • אצלך השאילתה בכל מקרה צריכה לבדוק את הנתון בטור של is_active בגלל התנאי ב WHERE. ניתן בקלות להראות מצבים בהם תוכנית ההרצה שונה מפני שנוספת פעולה של Compute Scalar כדי להציג את המספר הקבוע, כך שהתשובה היא שדווקה שימוש במספר קבוע עלול אולי לפעמים ליצור מעט יותר עומס כשמדובר בפעולה נוספת. דרך אגב אתה משווה 2 אפשרויות ומה עם האפשרות השלישית?

    הנה העלתי הסברון קצר עם תמונות של תוכנית ההרצה כאן:
    http://ariely.info/Blog/tabid/83/EntryId/99/Query-Efficiency-Using-parameter-VS-using-a-fixed-data.aspx


    signature

    • נערך על-ידי pituachMVP, Editor יום ראשון 30 דצמבר 2012 10:53
    • הוצע כתשובה על-ידי Ivan Radchenko יום שני 31 דצמבר 2012 12:24
    • סומן כתשובה על-ידי Eran Sharvit יום רביעי 02 ינואר 2013 11:00
    יום ראשון 30 דצמבר 2012 09:40
    מנחה דיון