מאמר זה הוא מאמר רביעי בסדרת המאמרים "כוונון של oracle 12c – הלכה למעשה", והוא ידון בנושא Skewness. תזכורת למאמרים: חלק א, חלק ב, חלק ג.
Skewness
skewness הוא מספר גדול מאוד או קטן מאוד של התאמת פרדיקט של שאילתה מול עמודה בטבלה, באופן בלתי צפוי. נמחיש את המושג באופן הבא:
ראשית ניצור את הטבלה הבאה:
create table skewd_table(object_type) as select object_type from dba_objects;
הטבלה מכילה 91763 אובייקטים.
נוכל למצוא התפלגות של כל אובייקט באופן הבא:
select object_type, count(object_type) from skewd_table group by object_type order by count(object_type);
קיימים 5 אובייקטים מסוג DIMENSION.
select count(*) from skewd_table where object_type='DIMENSION';
אבל 4427 אובייקטים מסוג SYNONYM.
select count(*) from skewd_table where object_type='SYNONYM';
נבנה היסטוגרמה עבור התפלגות הנתונים בטבלה הנ"ל. כל סל (bucket) יכיל טווח ערכים. במקרה הנוכחי סל יכיל את הערך של object_type. ההיסטוגרמה תראה כך:
נגדיר מידע שהוא skewed אם פרידקט מחזיר ערך שהוא גדול פי 10 מפרידקט אחר, כמו בדוגמה הנ"ל.
Skewness יכול לגרום בעיה עם ה- execution plan.
דוגמא: יש לנו טבלה של תנועות חשבון פר חברה (COMPANY_ID) וטבלה של חברות ((COMPANY_ID ו- COMPANY_NAME). אם נרצה לעשות סיכום של התנועות פר חברה, ה- Optimizer יבצע Cartesian Join עבור חברות עם מספר תנועות בודד. אבל אם הוא יבצע Cartesian Join מול חברות עם מיליוני תנועות תהיה ירידה חדה בביצועים.
הפתרונות הם: מחיקה\עדכון של היסטוגרמות, שימוש ב- Oracle 11g) Adaptive Cursor Sharing) או שינוי השאילתה. וזה מוביל אותנו לנושא הבא של היסטוגרמות.
דוד יצחק
Latest posts by דוד יצחק (see all)
- MongoDB ל DBA ומפתחים הלכה למעשה – חלק ב - 16/02/2016
- MongoDB ל DBA ומפתחים הלכה למעשה - 07/02/2016
- בדיקת ביצועים של Clustered ColumnStore Index - 06/11/2014
תגובה אחת ל- “כיוונן של Oracle 12c הלכה למעשה – חלק ד”
Oracle & IlOUG DBA North Forum 11.3.2014
שלום לכולם !
בהמשך לסידרה הזו
מוזמנים לכנס הבא של Oracle & ilOUG DBA North Forum .
כמו בכנסים הקודמים רוב החומר ייחודי לפורום שלנו והכי חשוב מעשי . תמצית הרצאות הכנסים ראיתם באתר הנוכחי בסדרת מאמרים על Oracle 12C . הרבה לפני כולם . חומר מעשי וייחודי .
רוצים לטעום עוד ..
http://www.iloug.org.il/Event_Page.php?EventID=187&BannID=330
בברכה,
ד יצחק ,
מנהל פורום DBA צפון
השאר תגובה: