Vertical Partition

27/03/2015

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

Truncate Table With Partitions

26/03/2015

ניתן כעת לבצע פעולות Truncate על פרטישנים (partitions) ספציפיים בטבלה מפורטשת, בשלב זה רק בגרסת SQL Azure V12.מה? מי? מו? מה: עד לפני מספר חודשים היינו רגילים שמיקרוסופט מוציאה גרסת SQL Server חדשה אחת לכמה שנים עם שלל חידושים טכנולוגיים ושלל כנסי השקה כדי לחשוף אותם ולקדם את המכירות; ואילו גרסת SQL Azure השתרכה מאחור עם יכולת מופחתות, מנסה לא לפתוח פער גדול מדי מגרסאות On Prem.לפני מספר חודשים מיקרוסופט הוציאה את גרסת V12 של Azure שסגרה חלק גדול מהפערים ברמת ה-TSQL מגרסת 2014, וכעת החידושים מועלים תחילה אליה, ורק בהמשך לגרסאות On Prem העתידיות.גרסת V12 עצמה תיעלם עם...
אין תגובות

תיכנות מקבילי בעזרת Start

12/03/2015

פירסמתי בעבר מספר פוסטים לגבי השימוש ב-Service Broker להרצה במקביל של מספר תהליכים, והנה עוד אופציה – לשיקולכם. פקודת Start ב-Command Line של Windows מאפשרת להריץ מספר פקודות במקביל, כלומר- אם ניצור קובץ batch ובו מספר פקודות כשלפני כל אחת Start; המערכת תפעיל כל אחת מהן בחלון/Session נפרד, והן ירוצו במקביל. כל זה קשור למערכת ההפעלה ולא ל-SQL Server, אך ניתן להריץ בצורה זו גם פקודות TSQL בעזרת SQLCmd ולהינות מפתרון מעניין שלא כרוך ביצירת אובייקטים וקודים מסובכים יחסית. ניצור קודם כל טבלת לוג כדי לעקוב אחר הפקודות השונות שירוצו במקביל: Create Table Try(ID Int Identity Primary Key Clustered, ...
אין תגובות

Alter Table OnLine

02/03/2015

עוד חידוש ב-V12 של Azure: היכולת לשנות טבלה OnLine מבלי לנעול אותה למשתמשים, בערך כמו אופציות דומות ביצירה או בתחזוקה של אינדקסים.לרוב נשתדל לעשות פעולות כאלו בלילה ובשעות בהן אין משתמשים, אך במערכות שפועלות מסביב לשעון – זה בלתי אפשרי. נכון- נשתדל לתזמן את זה למועדים בהם הפעילות נמוכה יחסית, אך עדיין- איננו רוצים לנעול את הטבלאות למשך כל זמן הפעילות, בעיקר בטבלאות גדולות בהן זה יכול להימשך דקות ארוכות. נתחיל מהבעייה. ניצור טבלת Clustered Index: Select 1 N, *Into T_msFrom sys.messages; Alter...
תגיות: , ,
אין תגובות