en-UShe-IL
You are here:   Blog
Register   |  Login

Blog Archive:

Maximize
* Can be used in order to search for older blogs Entries

Search in blogs


Blog Categories:

Maximize
* Can be used in order to search for blogs Entries by Categories

Blog Tags:

Maximize
* Can be used in order to search for blogs by keywords

TNWikiSummit


Awared MVP 


 


Microsoft® Community Contributor 


Microsoft® Community Contributor


 Read first, before you you use the blog! Maximize
דצמ20

Written by: ronen ariely
20/12/2011 08:16 RssIcon

שימוש בטבלת תפיסת שינויים

בגרסת 2008 של שרתי SQL נוספה יכולת חזקה מאוד לעבודה עם תפיסת שינויים בנתונים בטבלאות (DML) בשם Change Data Capture. אפשרות זו עובדת רק בגרסאות Enterprise, Developer, וגרסאות הערכה!

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

* הגדרת הפעלת האפשרות על מסד הנתונים באמצעות שימוש ב sys.sp_cdc_enable_db

USE AdventureWorks2008R2;

GO

EXECUTE sys.sp_cdc_enable_db;

GO

* לאחר שינוי הגדרת בסיס הנתונים ניתן לעשות שמוש בפרוצדורה sys.sp_cdc_enable_table על מנת להפעיל את האפשרות על טבלה מסוימת

* על מנת לצפות בהגדרות של ה CDC על טבלה מסוימת ניתן להעזר בפרוצדורה sys.sp_cdc_help_change_data_capture

* ברגע שאנו מגדירים מעקב אחרי שינויים CDC על טבלה נוצר לנו במסד הנתונים instance חדש של טבלה ששומרת את הנתונים הרלוונטים. כל פעולת הכנסת או שינוי נתון בטבלה המקורית מוסיף לנו רשומה לטבלה השינויים.

* חשוב! המספר המקסימלי של capture instances עבור כל טבלה הוא 2.

* מכיוון שהנתונים נרשמים בצורה קשיחה בטבלאות השינויים change tables הרי שיש כאן יתרון נרחב על עבודה עם טריגר בכך שניתן לגשת לנתונים בכל מועד שרוצים.

 

קישורים:

sys.sp_cdc_enable_db
http://msdn.microsoft.com/en-us/library/bb510486.aspx

sys.sp_cdc_enable_table
http://msdn.microsoft.com/en-us/library/bb522475.aspx

sys.sp_cdc_help_change_data_capture
http://msdn.microsoft.com/en-us/library/bb500302.aspx

מדריך מומלץ מעמיק יותר בנושא
http://www.simple-talk.com/sql/learn-sql-server/introduction-to-change-data-capture-%28cdc%29-in-sql-server-2008/

סרטון צעד אחרי צעד
http://www.youtube.com/watch?v=WI6dJTa3uDM

המדריך הרשמי של מייקרוסופט
http://msdn.microsoft.com/en-us/library/cc645937.aspx

Tags: SQL , CDC , trigger
Categories: SQL