Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

По умолчанию Пакет обновления 1 для SQL Server 2014 и Пакет обновления 3 для SQL Server 2012 включает исправления и необходимо добавить все флаги трассировки, чтобы активировать его. Чтобы включить исправление после установки накопительного обновления в разделе «решение», необходимо запустить Microsoft SQL Server путем добавления флага трассировки 1236 параметры запуска.

Симптомы

Предполагается запустить другой экземпляр SQL Server 2012, 2014 Microsoft SQL Server, SQL Server 2008 или SQL Server 2008 R2 на компьютере, который содержит много процессоров. Когда число блокировок (тип ресурса = база данных) для конкретной базы данных превышает определенный порог, возникают следующие проблемы производительности:

  • Повышенные значения возникают LOCK_HASH счетчик spinlock.

    Примечание. Сведения о том, как контролировать этот spinlock в разделе «Дополнительные сведения».

  • Запросы или операции, которые требуют блокировки баз данных слишком долго для завершения. Например можно заметить следующие задержки выполнения:

    • Имена входа SQL Server

    • Запросы к связанным серверам

    • sp_reset_connection

    • Проводки

Примечание. Найдите в списке блокировки (тип ресурса = база данных) этой базы данных, обратитесь к разделу «Дополнительная информация». Пороговое значение зависит от среды.

Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и все исправления безопасности, входившие в состав предыдущего накопительного обновления. Извлечь последние накопительные обновления для SQL Server:


Сведения об исправлении
Существует исправление от корпорации Майкрософт. Однако данное исправление предназначено для устранения только проблемы, описанной в этой статье. Применяйте данное исправление только в тех системах, которые имеют данную проблему.

Если исправление доступно для скачивания, имеется раздел "Пакет исправлений доступен для скачивания" в верхней части этой статьи базы знаний. Если этого раздела нет, отправьте запрос в службу технической поддержки для получения исправления.

Примечание. Если возникают дополнительные проблемы или необходимо устранить неполадки, возможно создать отдельный запрос на обслуживание. Затраты на обычные службы поддержки будет применяться к Дополнительные вопросы и проблемы, которые не соответствуют требованиям конкретного исправления. Полный список телефонов поддержки и обслуживания клиентов корпорации Майкрософт или создать отдельный запрос на обслуживание посетите следующий веб-узел корпорации Майкрософт:

http://support.microsoft.com/contactus/?ws=supportПримечание. В форме "Пакет исправлений доступен для скачивания" отображаются языки, для которых доступно исправление. Если нужный язык не отображается, значит исправление для данного языка отсутствует.

Статус

Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".

Дополнительные сведения

Приложение создает подключение к SQL Server, он сначала устанавливает контекст базы данных. По умолчанию подключение будет пытаться получить блокировку базы данных в режиме SH. Когда подключение будет остановлена или контекст базы данных изменен во время существования подключения будут выпущены блокировки SH-базы данных . Если имеется несколько активных подключений, использующих один и тот же контекст базы данных, может иметь много блокировки типа ресурса базы данных для этой конкретной базы данных.

На компьютере с 16 и более процессоров только объекты таблиц используют схему секционирования блокировок. Тем не менее не секционируются блокировки базы данных. Таким образом чем больше количество блокировок, тем больше времени занимает SQL Server получить блокировку базы данных. Большинство приложений, проблемы, вызванные этой структуре не возникают. Но как только число превышает определенный порог, дополнительной работы и времени требуется получить блокировку. Хотя стоимость только микросекунд для каждой дополнительной блокировки, общее время может быстро увеличиваться из-за сегментов хэш блокировки защищены с помощью спин-блокировки. Это вызывает дополнительные циклы ЦП и ожидает дополнительных работников для получения блокировки.

Это исправление введение секционирование блокировок базы данных при включении флага трассировки 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 = 1
WHILE @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
END
SELECT * FROM #spinlock_stats ORDER BY [CaptureTime]
DROP TABLE #spinlock_stats
Дополнительные сведения о диагностике и устранении конфликтов spinlock на SQL Server перейдите в следующий документ:

Диагностика и устранение конфликтов Spinlock в SQL ServerПримечание. Несмотря на то, что этот документ предназначен для 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


Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×