Ознаки
Припустімо, що у вас багато статистичних даних і таблиць, які містять багато стовпців у базі даних Microsoft SQL ServerSQL Server 2012 або SQL Server SQL Server 2014. Якщо ви одночасно виконуєте багато спеціальних запитів для отримання даних із цих таблиць, під час виконання CMEMTHREAD може виникати очікування.
Спосіб усунення проблеми
Відомості про сукупний пакет оновлень
Вперше виправлено цю проблему в наступному сукупному оновленні SQL ServerSQL Server.
- Сукупний пакет оновлень 2 для SQL ServerSQL Server 2014 SP1
- Сукупний пакет оновлень 9 для SQL ServerSQL Server 2014
- Сукупний пакет оновлень 7 для SQL ServerSQL Server 2012 SP2
Рекомендація: інсталюйте останній сукупний пакет оновлень для SQL Server
Кожне нове сукупне оновлення для SQL Server містить усі виправлення та виправлення системи безпеки, які входили до попереднього сукупного пакета оновлень. Радимо завантажити та інсталювати останні сукупні оновлення для SQL Server.
- Останнє сукупне оновлення для SQL ServerSQL Server 2014 SP1
- Останнє сукупне оновлення для SQL ServerSQL Server 2014
- Останнє сукупне оновлення для SQL ServerSQL Server 2012 SP2
Додаткові відомості
Коли в SQL Server 2012 році ви компілюєте або повторно компілюєте запит, обробнику потрібно отримати вхідні дані статистичної гістограми. Нам потрібно виконати сканування системної таблиці, а потім завантажити конкретну гістограму задіяних таблиць у пам'ять або кеш. Ці записи системної таблиці (для статистики) зберігаються в кеші системної таблиці (CACHESTORE_SYSTEMROWSET). Об'єкт пам'яті, який використовується для створення цих записів у кеші, не розділено на розділи, а глобально.
Таким чином, якщо під час цієї операції виконуються одночасні виділення пам'яті, ви зіткнетеся з очікуванням CMEMTHREAD на цьому об'єкті пам'яті. Зазвичай це трапляється, коли надсилається багато запитів, які потребують компіляції або повторної компіляції.
Це виправлення змінює розділ глобального об'єкта пам'яті таким чином, що одночасне виділення пам'яті, яке використовує кеш System Table, не стикається з конфліктами, а CMEMTHREAD очікує.
Докладні відомості про подібну проблему див. в 3026082 статті бази знань: ВИПРАВЛЕННЯ: SOS_CACHESTORE суперечка з лічильником у кеші наборів рядків системної таблиці викликає високе використання ЦП у SQL Server 2012 або 2014.
Стан
Корпорація Microsoft підтвердила, що це одна з проблем з продуктами Microsoft, перелічених у розділі "Застосовується до".