SAP HANA Row Vs Column store – עמודות מול שורות

28 בפברואר 2017

Row Vs Column store

שלום,

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

ממליץ לקרוא הקדמה למבוא בפוסט זה ו- בפוסט זה

מה זה SAP HANA

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

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

ROW Store
עכשיו בואו נראה איך היא מאוחסנת בבסיס נתונים בשיטת שורה. (row store)

כל רשומה/שורה מאוחסנת לפי הסדר.

COL Store

כדי להראות את ההבדלים אציג אותם זה מול זה

אנו רואים כי בשיטת השורה המערכת מאחסנת שורה אחר שורה את הערכים ובשיטת העמודה המערכת מאחסנת תחילה את כל ערכיו של השדה "שם פרטי"  אחר-כך את כל ערכיו של השדה "שם האב" ובסוף "גיל".
אוקי… איך שיטה זו מועילה או משפרת את המצב….

בשיטת COL (עמודה)  אנו יכולים לראות כי ישנם ערכים צמודים שהם זהים וכתוצאה מכך אני יכול לבצע דחיסה של הנתון. מה שמבטיח שיהיה רק ערך אחד מסוג מסויים. (לדוגמא: אם יש לנו "שם אב" בשם "יצחק" הוא יופיע רק פעם אחת בלבד במסד נתונים.)
ואם כבר דברנו על דחיסה, אז מסד הנתונים יבצע אוטומטית עבורינו את האינדקס. מה שמבטיח קריאה מהירה מאוד.

בואו נעזוב לרגע את המילים…. תמונה שווה אלף מילים!

אז בטח כולכם שואלים: "אוקי! אנו מבינים ששיטת העמודה Col Store, היא שיטה יעילה, חסכונית ומהירה, אז מדוע שנמשיך להשתמש בשיטת השורה ROW Store ?

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

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

אלה יהיו עם תאימות לאחור. סביר להניח שאחרי שתקבלו מושג על SAP HANA תרוצו לשנות ולהביא את הפיתוחים שלכם לעוצמה הראוייה.

 שחם לוי – Shacham Levi – ארכיטקט, מיישם ויועץ בכיר בחברת IBM.
Senior SAP Basis consultant.  מומחה בסיסי נתונים: SQL Server, DB2, ORACLE, SAP HANA.  התקנות, שדרוגים, T-SQL, ניטור ושיפור ביצועים. Performance Tuning , Query Optimization (תשתיתי ואפליקטיבי) מתכנת בכיר :  C#, WPF, .NET, ABAP, JAVA, Android . נותן שירות למגוון רחב של ארגונים.

 

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