כוונון ביצועים של שאילתות מסד נתונים טבלאי

לקוחות רבים חווים בעיות ביצועים ביישומי מחסן נתונים, ועל כן הנה כמה קווים מנחים ברמה גבוהה על איך תוכל לנתח ולשפר את הביצועים של דוח ב-Oracle Analytics. במקרים מסוימים, שאילתות ה-SQL המופקות על-ידי Oracle Analytics מורכבות לניתוח. נושא זה מתאר כיצד לנתח ולמזער בעיות ביצועים שעשויות לנבוע משאילתות ה-SQL שהופקו על-ידי Oracle Analytics.

נושא זה אינו מכסה בעיות ביצועים שנגרמו בגלל בעיות בדפדפן הרשת שלך, או במצגת הדוח.

ניתוח יומן השאילתות שלOracle Analytics (דרושה רמת יומן 3)

לקבלת מידע על איך למצוא יומן זה או איך להבין את התוכן, ראה איסוף וניתוח של יומני שאילתות.

  1. השווה את כמות הזמן שהשאילתא שלך צורכת ב-Oracle Analytics כנגד הזמן שנצרך במסד הנתונים, קרי זמן תגובה לעומתמשך שאילתא פיזית. בדרך כלל, הזמן שנצרך ב-Oracle Analytics לא עולה על כמה שניות.
  2. אם זמן התגובה עולה על כמה שניות, נתח את השלבים הנפרדים שבוצעו ב-Oracle Analytics כדי למצוא את הגורם (דרושה רמת יומן 5).

ניתוח ה-SQL הפיזי

  1. בדוק אם כל הטבלאות הנכללות בשאילתא אכן נחוצות. חפש טבלאות שאוחדו אך אינן נכללות בפסוקית SELECT ולא הוחל עליהן אף מסנן (מסננים ממשיים, לא תנאי join).
  2. זהה כמה שאילתות ותת-שאילתות פיזיות הופקו. לייתר דיוק, כמה פעמים השאילתא קראה טבלת עובדות. בעולם מושלם, השאילתא קוראת טבלת עובדות יחידה ופעם אחת בלבד. כאשר יש יותר מטבלת עובדות אחת, עליך לברר למה ולבודק אם תוכל להסיר כמה מהן.
  3. חפש עמודות שלא נכללות, כללי סכימה שאינם ניתנים לחיבור (REPORT_AGGREGATE, count(distinct)...), שלבי בחירה, תת-שאילתא בדוח, אופרטורים של קבוצה (UNION), סיכומי ביניים, תצוגות מרובות, וכן הלאה.
  4. בדוק אם יש איחודים חיצוניים. גלה מהיכן הם נובעים ואם תוכל להסיר כמה מהם על-ידי שינוי העיצוב.

ניתוח תוכנית הביצוע

אם האופטימיזציה של SQL לא מספיקה, נתח את תוכנית הביצוע כדי לחפש את שורש הבעיה בביצועים שלך. בקש ממנהלן מסד הנתונים לעזור לך. ישנן ארבע דרכים עיקריות לשפר ביצועים בנקודה זו:
  1. הקטן את הנפח של קלט/פלט על-ידי שיפור נתיבי גישה לנתונים (אינדקסים).
  2. הקטן את הנפח של קלט/פלט על-ידי הקטנת הנפח של קריאת נתונים. לדוגמה, תוכל לבדוק את המסננים שהוחלו או את מבנה מודל הנתונים (ראה בפרק הבא).
  3. הגדל את המקביליות (מספר הליכי המשנה המשמשים לקריאת טבלאות גדולות).
  4. שפר את מהירות הקלט/פלט (שיפורי התשתית, מסד נתונים בזיכרון, וכן הלאה).

בדיקה ושיפור של מודל הנתונים על מנת להקטין את הנפח של קריאת נתונים.

  1. צור טבלאות מסכמות.
  2. השתמש בפיצול (fragmentation).

    לדוגמה, אם משתמשים על-פי רוב בוחרים נתונים מהשנה, הרבעון או החודש הנוכחיים, תוכל לפצל את העובדה לשתי טבלאות: נוכחית וארכיב. במסד הנתונים של Oracle, תוכל להשתמש גם בחלוקה למחיצות

  3. השתמש באל-נרמול (כדי להפחית את מספר האיחודים).
  4. פצל טבלאות כדי להפחית את מספר העמודות.

    נפח הנתונים שנקראו לא תלוי רק במספר השורות בכל טבלה. נפח טבלה תלוי גם במספר ובגודל של העמודות שלו. לדוגמה, תוכל לפצל טבלה גדולה בת 500 עמודות לשתי טבלאות; טבלה אחת תהיה עם 50 העמודות שבהן נעשה השימוש התדיר ביותר, והשנייה תהיה עם 450 העמודות המשמשות לעתים רחוקות.

בעיות ביצועים רבות ב-Oracle Analytics נובעות מעיצוב לקוי כיוון שזה הגורם להפקת שאילתות SQL שהן פחות מאופטימליות. על-ידי שינוי העיצוב, תוכל לשפר את שאילתות ה-SQL המופקות ב-Oracle Analytics. לפעולה זו עשויה להיות השפעה עצומה, לא רק על ביצועי הדוחות שלך אלא גם על כמות המשאבים שבהם נעשה שימוש במסד הנתונים.