Columnstore Indexes – ארוחת צהריים חינם!!

2 ביולי 2013

אין תגובות

image מאת: אסף פרנקל, מיקרוסופט ישראל

 

Columnstore Indexes – ארוחת צהריים חינם!!

ישנו פתגם ידוע באנגלית, no free lunch. עבור גירסת SQL 2012, זה היה נכון.

אבל, ישנן הפתעות.

אז בוא נתחיל מהתחלה, מה אנו רוצים מאינדקס טוב:

1. שיפתור לי את כל הצרכים (ולא שאצטרך חמישה אינדקסים)

2. שיידחס מצויין – הרבה פחות מה data המקורי

3. שייתן ביצועים טובים

4. שכל (או לפחות רוב) השאילתות ייהנו משימוש בו

5. שלא יהיו לו הגבלות

מדע בדיוני – כבר לא!! ב 2012 היה את הרוב, אבל שתי הגבלות עצרו את השימוש, האינדקס לא היה ניתן לעדכון, וחלק ניכר מהשאילתות (בעיקר הקשות) לא נהנו ממנו.

בגירסת SQL Server 2012 PDW שיצאה לפני כמה חודשים ומיועדת לעולם ה Big Data ה feature כבר קיים עם כל 5 התכונות

בגירסת SQL server 2014 שביטא ראשונה שלה יצאה בימים אלו – ה feature מתווסף.

ולמי שרוצה לדעת במפורש – האינדקס ניתן לעדכון.

קצת הסברים טכניים:

 

מה היה ב SQL Server 2012 (מוסבר בהרחבה כאן)

· הרעיון המרכזי הוא להפוך שורות לעמודות

· כל עמודה מכסה כמיליון ערכים הנשמרים ב Blob – לדוגמא קוד עיר מגורים למיליון לקוחות

· כיוון שיש חזרות רבות לקודים – הדחיסה מצויינת

· נוסף מנוע מקבילי חדש – batch mode, המנוע עובד באופן מקבילי על כ 100 שורות, ומוריד את צריכת ה CPU לשביעית לעומת המנוע הרגיל (row mode)

· איך עובדים עם המנוע החדש באופן יעיל מוסבר בהרחבה כאן

 

מה השתנה ב PDW V 2.0 & SQL Server 14

· יותר סוגים של שאילתות נהנות מ batch mode בעיקר מדובר על שאילתות המכילות אחד או יותר מהביטויים הבאים: Left Join, Union All,

· ניתן לשמור את הטבלא רק עם columnstore index. בוא נראה כמה זה חוסך:

v נניח שיש לנו טבלא בגודל 10GB

v ב SQL Server 2008 היו אינדקסים שהכפילו את הטבלא ולאחר קמפרוס של שליש – 6.5GB

v ב SQL Server 2012 אינדקס עמודה יחיד בגודל 1.5GB בתוספת הטבלא עצמה נגיע ל 5GB

v ב PDW 2.0 ו SQL 14 יהיה רק את האינדקס – 1.5GB

v בסיכום: פי 4 יותר טוב מ SQL 2008 ופי 3 יותר טוב מ SQL 2012

· ניתן לעדכן טבלאות עם column index, בבדיקה שערכתי מליון עדכונים לקחו 26 שניות ומיליון רשומות חדשות ב 13 שניות (על חומרה חזקה)

v בפועל עדכון מתבצע כמחיקה והכנסה

v יש buffer מיוחד בו ההכנסות מתבצעות באופן זמני

 

להתנסות  Microsoft SQL Server 2014 Community Technology Preview 1  CTP1 לחץ כאן

רוצים לדעת עוד – אדבר על זה במפגש האירוע השנתי של קבוצת המשתמשים: SQL Summer 2013 ב 8 ליולי, במיקרוסופט הרצליה

 

אסף פרנקל הוא ארכיטקט בכיר – מסדי נתונים, קבוצת היועצים (MCS) מיקרוסופט ישראל

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *