PracticU

transaction save point

בלי כתוביותעם כתוביות
PracticU › קורס DBA אפליקטיבי - שפת SQL למתחילים › transaction save point
מילון מושגים:
רשומה - שורה בטבלת מסד נתונים שמרכזת את כל השדות של פריט אחד, למשל כל הפרטים של לקוח יחיד.
עמודה - שדה בטבלת מסד נתונים שמחזיק ערך מסוג מסוים עבור כל שורה, למשל שם או תאריך.

transaction save point
השיעור הזה מציג דרך לחלק טרנזקציה לחלקים בעזרת נקודות שמירה (Save Point). בתוך טרנזקציה אפשר לסמן נקודה, ולחזור אליה בביטול חלקי, במקום לבטל את כל הטרנזקציה.
איך זה עובד
- SAVE TRANSACTION מסמן נקודה בשם, למשל A או B.
- ROLLBACK TRANSACTION עם שם נקודה מבטל רק את מה שבוצע אחריה, והטרנזקציה ממשיכה.
- ROLLBACK בלי שם מבטל את כל הטרנזקציה.
דוגמה
בדוגמה הוכנסו ארבעה עובדים לטבלת Employees בטרנזקציה אחת, עם נקודות שמירה בין ההכנסות:
1. הוכנס עובד M1, ונשמרה נקודה A.
2. הוכנס עובד M2, ונשמרה נקודה B.
3. הוכנס עובד M3, ואז בוטל עד נקודה B, כך שעובד M3 לא נשמר.
4. הוכנס עובד M4, ואז בוטל עד נקודה A. התוצאה: רק M1 נשאר בטרנזקציה.
תופעה בעמודת הזהות
הכנסה שנעשית מחוץ לטרנזקציה מקבלת מספר זהות שממשיך את הספירה. מכיוון שעמודת הזהות לא מתאפסת בעת ביטול, נוצר דילוג במספרים: הרשומה האחרונה מקבלת מספר 14 במקום 10. המרצה מסביר שהערך של IDENTITY לא חוזר אחורה בעת rollback.
נקודות שמירה מאפשרות לנהל שינויים חלקיים בתוך טרנזקציה אחת, אבל הן לא מחזירות את ערכי עמודות הזהות.
השיעור הבא בקורס: Read Committed / UnCommitted

פרקי ההרצאה: transaction save point

  1. 00:00

    מה זה נקודת שמירה בתוך טרנזקציה

  2. 00:40

    שמירת נקודות A ו-B במהלך העבודה

  3. 01:16

    ROLLBACK לנקודת שמירה ולא לכל הטרנזקציה

  4. 02:11

    חזרה לנקודת A וביטול השינויים שאחריה

תמלול ההרצאה: transaction save point

הטקסט המלא של הדקות הראשונות בהרצאה «transaction save point» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:21

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

  2. 00:35

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

  3. 00:50

    אני פתחתי טרנזקציה מלאה ובתוכה עשיתי insert לתוך טבלת employees של עובד M1. לאחר מכן שמרתי את הנקודה Save Transaction A, נתתי לה שם Label כלשהו, במקרה הזה זה A, ועשיתי אינסטרוקט נוסף.

  4. 01:05

    אינסטרוקט נוסף מכניס עובד חדש, עובד ששמו M2, וגם כאן לאחר סיום הטרנזקציה הזאת ולאחר סיום פעולת ה-DML הזאת שמרתי את הנקודה B. מה זה אומר?

  5. 01:18

    שימו לב, לאחר ביצוע הפעודה השלישית של M3 עשיתי Rollback Transaction B, מה המשמעות של רולבק טרנזקשן B? אנחנו רוצים לחזור אבל אני לא רוצה לחזור ולבטל את כל הטרנזקציה.

  6. 01:32

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

  7. 01:56

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

  8. 02:06

    זה אומר שעובד מספר, שעובד ששמו m3 לא ייכנס. מצוין. הכנסנו לאחר מכן את עובד מספר 4, m4, ואז עשינו rollback טרנזקשן A.

  9. 02:16

    rollback טרנזקשן A גולל לי את כל השינויים עד לנקודה של A. נמצאנו למדים מכאן. כאן חזרתי עד לסף פוינט, לנקודה של A. כל הטרנזקציה היחידה שתתקיים ברגע שנלחץ כאן

לקורס המלא: קורס SQL ו‑DBA אפליקטיבי

ההרצאה הקודמת: מאפייני טרנזקציה - ACID

ההרצאה הבאה: Read Committed / UnCommitted

הרצאות קשורות מקורסים אחרים

  • Server Transaction
  • Save Activity State
  • Frame-Relay תצורת Point-to-Point
  • הסבר על Cluster - צ'ק פוינט - Check Point

קורסים נוספים במסלול

  • קורס NoSQL - MongoDB
  • קורס SSIS
  • קורס BI - ניתוח מסדי נתונים - Qlik Sense
  • קורס Power BI