דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. נעילת תהליך ב SQL SERVER

נעילת תהליך ב SQL SERVER

מתוזמן נעוץ נעול הועבר ארכיון code613m
7 פוסטים 3 כותבים 438 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    ארכיטקט
    כתב ב נערך לאחרונה על ידי
    #1

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

    בדרך כלל פרוצדורות שמטפלות בכל מיני דברים שקשורים להשלמת מידע ונתונים בתוך הדטה בייס וקיום כל מיני כללים עיסקיים (לדוגמא שליחת SMS לכל הלקוחות שיש להם יותר מ 2 קרנים וכדומה)

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

    כהיום ראיתי כאן מאמר שנראה נפלא, אולם לא זכיתי לרדת לעומקו, אשמח לשמוע ממכם עצות חכמות ומועילות.

    תודה.

    פורסם במקור בפורום CODE613 ב13/03/2016 19:00 (+02:00)

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

    תגובה 1 תגובה אחרונה
    0
    • רחמיםר מנותק
      רחמיםר מנותק
      רחמים מורחק
      כתב ב נערך לאחרונה על ידי
      #2

      אם הטבלה הזמנית תהיה אם שם יחודי כמו GUID לא תהיה לך את הבעיה כלל, לא כן?

      פורסם במקור בפורום CODE613 ב13/03/2016 19:11 (+02:00)

      תגובה 1 תגובה אחרונה
      0
      • א מנותק
        א מנותק
        ארכיטקט
        כתב ב נערך לאחרונה על ידי
        #3

        אין שום קשר, הטבלה הזמנית לפעמים נועדה לפשט את הקוד, בסופו של דבר הכל נכנס לטבלאות קבועות במסד הנתונים, קח את הדוגמא של בדיקת לקוחות עם 3 קרניים שלא נשלח להם SMS מזל טוב לקרן השלישית, זאת שאילתה שלפעמים קצת יותר מורכבת ממה שזה נראה, ומנהג ישראל לפצל את העסק לכמה שאילתות, לבצע מניפולציות על טבלה זמנית, ורק בסוף לעשות אינסרט לטבלה הסופית, מה שייתכן שתוך כדי עבודה יש עוד יוזר שמריץ את אותו תהליך, ואז נמצא שבן אדם מקבל מסרון על הקרן הנוספת פעמיים, והוא בטוח שכבר צמחו לו 4 קרניים, ומתלונן (האמת שזה יכול להיות מאוד נכון כאשר לקוחות מקבלים הודעה על זיכויים כספיים וכדומה) איה הקרן הרביעית.
        אגב טבלה זמנית היא פר סשן כמעט תמיד ב SQL SERVER אלא אם כן מוסיפים עוד סולמית כגון ##TABLE

        פורסם במקור בפורום CODE613 ב13/03/2016 19:27 (+02:00)

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

        תגובה 1 תגובה אחרונה
        0
        • S מנותק
          S מנותק
          softs
          כתב ב נערך לאחרונה על ידי
          #4

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

          פורסם במקור בפורום CODE613 ב14/03/2016 15:44 (+02:00)

          תגובה 1 תגובה אחרונה
          0
          • S מנותק
            S מנותק
            softs
            כתב ב נערך לאחרונה על ידי
            #5

            אחרי שעשו לי פה שיימינג ....
            אין לי את הזמן להכין פה קורס בנושא וזה לא תחום שניתן ללמד אותו על קצה המזלג, עשיתי פעם קורס מקיף בנושא שכבר המלצתי עליו כאן.
            החלק הרלוונטי ממנו:
            https://lagunita.stanford.edu/courses/DB/Indexes/SelfPaced/courseware/ch-indexes
            כל הקורס מאוד מומלץ (מחולק למיני קורסים) שזה כאן:
            https://lagunita.stanford.edu/courses/DB/2014/SelfPaced/about
            ממליץ לראות את הסרטונים בסבלנות, לעשות את הבוחן בכל שלב ובכללי ללכת ללפי הקו שלהם ולא לדלג.
            אחרי שהשואלים יואילו ללמוד את הקורס הקצר הזה, אני יואיל לענות בנושא מעל דפי הפורום.

            לאדוקים במיוחד: המרצה היא אישה והראש שלה מופיע בסרטונים בריבוע בצד ימין למטה.

            פורסם במקור בפורום CODE613 ב03/04/2016 13:18 (+03:00)

            תגובה 1 תגובה אחרונה
            3
            • א מנותק
              א מנותק
              ארכיטקט
              כתב ב נערך לאחרונה על ידי
              #6

              זהו, אני יכול להרצות :lol: :lol: :lol:
              מה שכן לא זכיתי להבין למה הקורס הזה פתוח לכל דורש, ואילו הקורס אשר הפנית כאן דורש רישום וכו'. ואני לא מוכן להירשם די די די כבר, כל אחד שיש לו אתר לזמני הדלקת נרות חנוכה שחל להיות בפורים רוצה רישום, מספיק!!!!!

              פורסם במקור בפורום CODE613 ב03/04/2016 22:33 (+03:00)

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

              תגובה 1 תגובה אחרונה
              0
              • רחמיםר מנותק
                רחמיםר מנותק
                רחמים מורחק
                כתב ב נערך לאחרונה על ידי
                #7

                @softs

                לאדוקים במיוחד: המרצה היא אישה והראש שלה מופיע בסרטונים בריבוע בצד ימין למטה.

                אז זה בטח סגור בנטפרי 🙂

                פורסם במקור בפורום CODE613 ב03/04/2016 22:38 (+03:00)

                תגובה 1 תגובה אחרונה
                0

                בא תתחבר לדף היומי!
                • התחברות

                • אין לך חשבון עדיין? הרשמה

                • התחברו או הירשמו כדי לחפש.
                • פוסט ראשון
                  פוסט אחרון
                0
                • דף הבית
                • קטגוריות
                • פוסטים אחרונים
                • משתמשים
                • חיפוש
                • חוקי הפורום