עמידות מעוכבת של טרנזקציות ב SQL Server 2014 - ilDBA Portal

עמידות מעוכבת של טרנזקציות ב SQL Server 2014

05/02/2014 | פורסם על ידי

זוכרים את הסרט "חתונה מאוחרת"? עם הגרוזיני ההוא שרצה להתחתן בגיל המופלג של 35 ? מסתבר שבמייקרוסופט SQL Server 2014 קיים מושג מקביל לגבי טרנזקציות, והוא נקרא "טרנזקציה מעוכבת" או באנגלית Delayed Durable Transaction. בפעם הראשונה שעברתי על התיעוד של התכונות החדשות של גרסת בסיס הנתונים SQL 2014, זה הדבר הראשון שקפץ לי לראש…

עד היום (כלומר עד וכולל SQL 2012) כל הפעולות שהוגדרו כטרנזקציה צייתו לחוקי ACID. החוקים הללו אומרים שכל טרנזקציה היא אטומית (A), שלמה וקונסיסטנטית (C), מבודדת (I מהמילה Isolated) ו יציבה/עמידה (D מהמילה Durable). עתה נכנס לתמונה גורם חדש והוא נושא העיכוב או ההשהיה. שהופך את זה ל ACID עם השהיה כשגודל ההשהיה ניתן לכוונון! במילים פשוטות, SQL SERVER יכריז על טרנזקציה כגמורה כלומר – היה Commit מוצלח גם אם לא נרשמו כל הרשומות לקובץ הלוג בדיסק. רשומות אלו ישתהו (יעוכבו) בעצם בזיכרון בחוצץ לוג מיוחד וכל המערכת תעבוד יותר מהר כי יהיה פחות wait log time.

כמובן שאם הייתה נפילת שרת במהלך השניות הללו אז טרנזקציות שלא נרשמו דיסק תאבדנה – אבל זה סיכון שיש לשקול אותו לעומת זאת אפשר להרוויח זמן עבודה לא מבוטל. מבחינה מעשית, ההשהיה הנ"ל צריכה להיות של לא יותר מכמה שניות (נניח עד 30 שניות) וכדי לוודא זאת ניתן ליישם ג'וב שכל 30 שניות למשל מריץ מרמת master database את הפרוצדורה sp_flush_log וזאת בכדי לאלץ כתיבה לקובץ הלוג בדיסק מחוצץ הלוג בזיכרון.

כיצד נאפשר את האופציה ?

הפקודה ב TSQL הינה:

ALTER DATABASE DB SET DELAYED_DURABILITY = { Disabled | Allowed | Forced };

הסבר לגבי תתי האופציות:

Disabled = התנהגות ברירת המחדל, כמו עד לגרסא זו
Allowed = יש להחליט לגבי כל טרנזקציה האם היא מעוכבת או לא
Commit TRANSACTIONזה נעשה בכתיבת הקוד עצמו עם הפסוקית הבאה שמתלווה לפקודת ה

WITH DELAYED_DURABILITY = {OFF | ON}

:לדוגמא

COMMIT TRAN WITH DELAYED_DURABILITY = ON

כמובן שהחיסרון כאן הינו כתיבה בכל טרנזקציה בקוד והיתרון הינו גמישות החלטה (מעוכב או לא).
האופציה האחרונה הינה Forced שאומרת שבכל מקרה כל הטרנזקציות מוגדרות כמעוכבות בתחום ההגדרה של בסיס הנתונים DB.

 בצורה גרפית גם ניתן להגדיר זאת ע"י כניסה ב SQL סטודיו ל:

Database Properties -> Options folder -> Delayed Durability option selection

אלי.

השאר תגובה:

שם (חובה):
אימייל (לא יפורסם) (חובה):
תגובה (חובה):

*



מאמרים קשורים

איך לבצע Sizing DB ב-Datacenter בארגונך בקלות (חלק א')

כחלק מהטמעות מוצרי IT תשתיתיים (כגון FWDB, מוצרי גיבוי, חוות Storage, מוצרי שו"ב ועוד…) בארגוני, אנו נדרשים המון פעמים לענות על שאלות לספקים כגון : מה גודל הכולל של ה –  Datacenter  ? מה חלוקת גודל ה [...]
מבוא

מבוא לבעיות ביצועים באורקל

The following two tabs change content below.BioLatest Posts עודד רז עודד רז, מנכ"ל חברת בריליקס ומייסד אתר זה. עודד הוא Oracle ACE Director ואחד מה-DBA-ים הבכירים ביותר בישראל, עם מעל 15 שנות ניסיון כ-DBA תשתיתי ואפליקטיבי. לעודד [...]

ה-SQL Performance Analyzer ב-Real Application Testing

בפוסט הקודם הזכרתי בקצרה את ה-SQL Performance Analyzer, בפוסט הזה אני אציג את ה-SPA, יתרונות וחסרונות של המוצר ואיך כדאי להשתמש [...]

מבוא ל- Real Application Testing

הפעם רציתי לסקור feature שלם שנקרא RAT (או בשמו המלא Real Application Testing). ה- feature הזה הוא database option של Oracle Enterprise Edition והוא לא חדש בכלל. הוא הוצג ב- 11gR1 וגם נמצא בשימוש לא מועט בעולם. משום מה, אצלנו בארץ לא יוצא [...]
Copyright 2019 ilDBA Portal. Brought to you by Brillix - Israel Leading DBA company. Sponsored by: DBSnaps - Database Video Tutorialss
Website Security Test
%d בלוגרים אהבו את זה: