תופעות
כאשר יותר מדי תוספות בו מתרחשות באותו סל hash, או שמטמון התוכנית של SQL Server של ad hoc מגיע למגבלת הכניסה של 160,036, התעוררות חמורה בSOS_CACHESTORE spinlock. במקרה זה, שימוש גבוה ב-CPU מתרחש ב-Microsoft SQL Server.
סיבה
הבעיה מתרחשת כאשר מטמון התוכנית של SQL Server מגיע למגבלת הכניסה שלו, ויש לפנות תוכניות שיש להן עלות נמוכה כדי להוסיף תוכניות חדשות. פעולה זו גורמת לתוכן כובד עבור הSOS_CACHESTORE spinlock המספק סינכרון עבור הדליים של טבלת ה-hash של מטמון תוכנית SQL Server.
פתרון
מידע אודות עדכון מצטבר
הבעיה נפתרה לראשונה בעדכון המצטבר הבא של SQL Server.
כל עדכון מצטבר חדש עבור SQL Server מכיל את כל התיקונים החמים ואת כל תיקוני האבטחה שנכללו בעדכון המצטבר הקודם. עיין בעדכונים המצטברים האחרונים עבור SQL Server:
מידע נוסף
למטמון התוכנית יש שני מגבלות: הגודל הכולל והמספר הכולל של כל התוכניות. מגבלות הגודל וספירת הערכים מוסברים במאמר הלבן הבא:
המספר המרבי של ערכים שמטמון התוכנית יכול להכיל הוא פי ארבע מספירת הדליים. באפשרותך לאמת מידע זה על-ידי הפעלת השאילתות הבאות:
select name, type, buckets_count
from sys.dm_os_memory_cache_hash_tables
where name IN ( 'SQL Plans' , 'Object Plans' , 'Bound Trees' )
select name, type, pages_kb, entries_count
from sys.dm_os_memory_cache_counters
where name IN ( 'SQL Plans' , 'Object Plans' , 'Bound Trees' )
לדוגמה, במערכות של 64 סיביות, מספר הדליים של מטמון תוכנית SQL Server הוא 40,009. לכן, מספר הערכים המרבי שיכול להתאים למטמון של תוכנית SQL Server הוא 160,036.
אם יש לך עומס עבודה שמשתמש בשאילתות אד-הוק שונות, מגבלה זו יכולה להפוך לצוואר בקבוק. השינוי המתבצע על-ידי תיקון חם זה מטפל במצב זה. לאחר התקנת תיקון חם זה והפיכת השינוי לזמין באמצעות דגל מעקב האתחול "-T 174," ספירת הדליים גדלה ל-160,001 במערכות של 64-bit. מטמון התוכנית מסוגל להכיל תוכניות 640,004 לכל היותר.
מצב
Microsoft אישרה שזוהי בעיה במוצרי Microsoft המופיעים בסעיף "חל על".