none
מימוש sequence ב- SQL Server RRS feed

תשובות

  • מיכל שלום רב,

    להלן 2 אפשרויות :

    http://blogs.msdn.com/b/sqlcat/archive/2006/04/10/sql-server-sequence-number.aspx

    בהצלחה!


    Best Regards,

    Itai Binyamin, MVP
    SQL Server Group Manager
    Veracity Group

    www.Veracity-Group.com
    www.ItaiBinyamin.Blogspot.com

    • סומן כתשובה על-ידי michal12 יום חמישי 22 מרץ 2012 13:53
    יום חמישי 22 מרץ 2012 09:05
  • הי מיכל,

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

    האופציה השניה, לעומת זאת, דורשת טבלה נפרדת לכל Sequence וכן Job שמוחק רשומות מכל הטבלאות האלה (המלצה שלי). לכן היא יותר מורכבת לישום ולתחזוקה. אולם, היא מייצרת פחות נעילות, מכיוון שמדובר בפקודות INSERT ולא UPDATE, ומכיוון שמדובר בטבלאות שונות. אני ממליץ להוריד את ה-DELETE מה-Stored Procedure ולמחוק את הרשומות ב-Offline באמצעות Job, כפי שמוזכר במאמר. זה יוריד את כמות הנעילת אפילו יותר.

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

    מעבר לכל זה, חשוב לציין שב-SQL Serevr 2012 יש אוביקט Sequence מובנה.

    בהצלחה!


    גיא גלנצר

    יועץ ומדריך SQL Server

    Madeira - SQL Server Services - http://www.madeira.co.il

    שבת 24 מרץ 2012 06:29
    מנחה דיון

כל התגובות

  • מיכל שלום רב,

    להלן 2 אפשרויות :

    http://blogs.msdn.com/b/sqlcat/archive/2006/04/10/sql-server-sequence-number.aspx

    בהצלחה!


    Best Regards,

    Itai Binyamin, MVP
    SQL Server Group Manager
    Veracity Group

    www.Veracity-Group.com
    www.ItaiBinyamin.Blogspot.com

    • סומן כתשובה על-ידי michal12 יום חמישי 22 מרץ 2012 13:53
    יום חמישי 22 מרץ 2012 09:05
  • תודה רבה. נעזרתי במאמר הזה :-)

    כעת אני שוקלת את שני הפתרונות המוצעים בו. יש לך המלצה?

    תודה,

    מיכל

    יום חמישי 22 מרץ 2012 14:00
  • הי מיכל,

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

    האופציה השניה, לעומת זאת, דורשת טבלה נפרדת לכל Sequence וכן Job שמוחק רשומות מכל הטבלאות האלה (המלצה שלי). לכן היא יותר מורכבת לישום ולתחזוקה. אולם, היא מייצרת פחות נעילות, מכיוון שמדובר בפקודות INSERT ולא UPDATE, ומכיוון שמדובר בטבלאות שונות. אני ממליץ להוריד את ה-DELETE מה-Stored Procedure ולמחוק את הרשומות ב-Offline באמצעות Job, כפי שמוזכר במאמר. זה יוריד את כמות הנעילת אפילו יותר.

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

    מעבר לכל זה, חשוב לציין שב-SQL Serevr 2012 יש אוביקט Sequence מובנה.

    בהצלחה!


    גיא גלנצר

    יועץ ומדריך SQL Server

    Madeira - SQL Server Services - http://www.madeira.co.il

    שבת 24 מרץ 2012 06:29
    מנחה דיון
  • גיא,

    תודה רבה.

    עזרת לי מאוד :-)

    מיכל

    יום ראשון 25 מרץ 2012 11:54