תופעות
כאשר מתרחשות הוספות בו-זמניות רבות מדי באותו מיכל Hash, או שמטמון תוכנית אד הוק SQL Server מגיע למגבלת ההזנה שלו של 160,036, מתרחשת התנגשות חמורה SOS_CACHESTORE טווח. במצב זה, שימוש גבוה ב- CPU מתרחש ב- Microsoft SQL Server.
סיבה
הבעיה מתרחשת כאשר SQL Server התוכנית מגיע למגבלת הכניסה שלו, ויש לפנות תוכניות בעלות נמוכה כדי להוסיף תוכניות חדשות. פעולה זו גורמת להתנגשויות כבדות עבור SOS_CACHESTORE הטווח שמספק סינכרון עבור מיכלי טבלת ה- 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 סיביות, מספר מיכלי ה- Bucket עבור מטמון SQL Server הוא 40,009. לכן, המספר המרבי של ערכים שניתן להתאים למטמון SQL Server הוא 160,036.
אם יש לך עומס עבודה המשתמש בשאילתות אד הוק שונות, מגבלה זו יכולה להפוך לצוואר בקבוק. השינוי המתבצע על-ידי תיקון חם זה מטפל במצב זה. לאחר התקנת תיקון חם זה ותאפשר את השינוי באמצעות דגל מעקב אתחול "-T 174", ספירת Bucket גדל 160,001 במערכות 64 סיביות. לאחר מכן, מטמון התוכנית יוכל להכיל עד 640,004 תוכניות.
מצב
Microsoft אישרה כי זוהי בעיה במוצרי Microsoft המפורטים בסעיף "חל על".