Applies ToSQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2012 Express SQL Server 2012 Web SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2008 Service Pack 3 SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard

כברירת מחדל, Service Pack 1 עבור 2014 שרת SQL ו- Service Pack 3 עבור SQL Server 2012 כוללות תיקון זה ואין צורך להוסיף דגלים מעקב כדי להפוך לזמין את התיקון. כדי להפוך לזמין את התיקון לאחר התקנת אחד העדכונים המצטברים בסעיף פתרון הבעיה, עליך להתחיל Microsoft SQL Server על-ידי הוספת דגל מעקב 1236 פרמטרים הפעלה.

מאפייני הבעיה

נניח להפעיל מופע של Microsoft SQL Server 2014, 2012 שרת SQL, SQL Server 2008 או SQL Server 2008 R2 במחשב המכיל מעבדים רבים. כאשר מספר הנעילות (סוג משאב = מסד נתונים) עבור מסד נתונים מסוים חורגת מסף מסוים, אתה נתקל בבעיות ביצועים הבאות:

  • ערכי הרשאות מלאות מתרחשים עבור ספירת spinlock LOCK_HASH .הערה עיין בסעיף 'מידע נוסף' לקבלת מידע אודות האופן שבו ניתן לפקח על זה spinlock.

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

    • התחברויות לשרת SQL

    • שאילתות שרת מקושר

    • sp_reset_connection

    • תנועות

הערה כדי לאתר את הרשימה של נעילות (סוג משאב = מסד נתונים) על מסד נתונים נתונה, עיין בסעיף 'מידע נוסף'. ערך הסף משתנה על-ידי הסביבה.

כל עדכון מצטבר חדש עבור SQL Server מכיל את כל התיקונים החמים ואת כל האבטחה מתקן אשר היו כלולים בעדכון המצטבר הקודם. להוציא את העדכונים המצטבר העדכני ביותר עבור SQL Server:

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

http://support.microsoft.com/contactus/?ws=supportהערה הטופס "תיקון חם זמין להורדה" מציג את השפות שעבורן התיקון החם זמין. אם אינך רואה את השפה שלך, הסיבה לכך היא שהתיקון חם אינו זמין עבור שפה זו.

מצב

Microsoft אישרה כי מדובר בבעיה במוצרי Microsoft הרשומים במקטע 'חל על'.

מידע נוסף

כאשר יישום יוצר חיבור ל- SQL Server, היא מקימה תחילה את הקשר מסד נתונים. כברירת מחדל, החיבור ינסה להשיג נעילה מסד נתונים במצב SH. נעילת מסד הנתונים של SH יפורסמו כאשר החיבור מופסק או הקשר מסד הנתונים השתנה במהלך תקופת החיים של החיבור. אם ברשותך חיבורים פעילים רבים המשתמשים באותו הקשר מסד נתונים, באפשרותך להגדיר נעילות רבים של סוג המשאב של מסד הנתונים עבור מסד נתונים מסוים.במחשב בעל 16 או יותר יחידות ה-Cpu, רק אובייקטים של טבלה להשתמש בערכה נעל מחולק למחיצות. עם זאת, לא למחיצות נועל מסד הנתונים. לכן, נועל המספר של מסד נתונים גדול יותר, כך משך זמן עבור SQL Server להשיג נעילה של מסד הנתונים. רוב היישומים לא תיתקל בעיות הנגרמות על-ידי עיצוב זה. אך ברגע המספר חורגת מסף מסוים, עבודה נוספת ואת זמן נדרש כדי להשיג את הנעילה. למרות העלות היא רק מיקרו שניות עבור כל נעילה נוספת, הזמן הכולל באפשרותך להגדיל במהירות מכיוון ה-buckets hash נעל מוגנים על-ידי שימוש של spinlock. פעולה זו גורמת מחזורי CPU נוספים והמתנה עובדים נוספים להשיג את הנעילה.תיקון חם זה מציג נעל יצירת מחיצות במסד הנתונים כאשר דגל מעקב T1236 זמינה בעת האתחול. חלוקה למחיצות את הנעילה במסד הנתונים שומר את העומק של הרשימה נעל לניהול כל למחיצה מקומית. הדבר מייעל באופן משמעותי את נתיב הגישה בו נעשה שימוש כדי להשיג נעילה מסד נתונים .כדי לפקח על LOCK_HASH spinlock, באפשרותך להשתמש בשאילתה הבאה.SET NOCOUNT ONCREATE TABLE #spinlock_stats([CaptureTime] datetime,[name] nvarchar(512),[collisions] bigint,[spins] bigint,[spins_per_collision] real,[sleep_time] bigint,[backoffs] int)DECLARE @counter int = 1WHILE @counter < 100 BEGIN INSERT INTO #spinlock_stats SELECT GETDATE() as "CaptureTime" , * FROM sys.dm_os_spinlock_stats WHERE [name] = 'LOCK_HASH' WAITFOR DELAY '00:00:05' SET @counter +=1 ENDSELECT * FROM #spinlock_stats ORDER BY [CaptureTime]DROP TABLE #spinlock_stats לקבלת מידע נוסף אודות באבחון ובפתרון של תחרות spinlock בשרת SQL, עבור אל המסמך הבאים:

באבחון ובפתרון של תחרות Spinlock בשרת SQLהערה למרות מסמך זה נכתב עבור SQL Server 2008 R2, המידע ישימה עדיין על SQL Server 2012.

הפניות

לקבלת מידע נוסף אודות דגלים מעקב ב- SQL Server 2012, עבור אתר האינטרנט של TechNet הבא:

מידע אודות דגלים מעקב ב- SQL Server 2012 לקבלת מידע נוסף אודות האופן שבו ניתן למצוא מספר הנעילות מסד הנתונים משתמש בכל מסד נתונים, להשתמש בשאילתה הבאה כדי לחשב ערך זה:select Resource_database_id, resource_type, request_mode, request_status, count (*) 'LockCount' from sys.dm_tran_locks group by Resource_database_id, resource_type, request_mode, request_status

זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

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

קהילות עוזרות לך לשאול שאלות ולהשיב עליהן, לתת משוב ולשמוע ממומחים בעלי ידע עשיר.