Запрос снижается производительность, когда sys.dm_db_index_usage_stats содержит большое количество строк

Переводы статьи Переводы статьи
Закрыть Закрыть
Код статьи: 2003031 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Проблема

Рассмотрим следующий сценарий:

  • В Microsoft SQL Server 2005 часто выполняются операции DDL, включают в себя удаление и воссоздание большого количества таблиц (особенно временные таблицы в базе данных tempdb).
  • Имеется большое количество записей (100 000 и более) в динамическое административное представление sys.dm_db_index_usage_stats (DMV).

В этом случае вы можете заметить следующее:

  • Запросы в целом занять много времени.
  • Общая загрузка ЦП [время работы в режиме пользователя] больше, чем обычный процесс Sqlservr.exe.
  • Выходные данные Инструкции DBCC SQLPERF ("SPINLOCKSTATS") отображается большое число включается и конфликтов для OPT_IDX_STATS или SPL_OPT_IDX_STATS.

Причина

Статистические данные для пользовательских таблиц во всех базах данных и временные таблицы из базы данных tempdb собраны и сохранены в динамическое административное Представление sys.dm_db_index_usage_stats . При выполнении операций DDL, которые включают в себя удаление и повторное создание таблицы (например, временные таблицы), это представление DMV должен быть обновлен с соответствующей информацией. Это динамическое административное Представление имеет параллелизма в форме спин-блокировки, малый вес. При попытке нескольких потоков обновить это представление DMV в то же время его возникновение конфликтов и привести к другим проблемам, описанным в разделе « проблема » данной статьи.

Можно также заметить подобные проблемы, либо когда большое количество записей, обновляются или частые обновления выполняются в sys.dm_db_missing_index_group_stats динамическое административное Представление информации.

Решение

Можно использовать один или несколько из следующих методов для решения проблемы:

  • Снизить скорость, с которой Создание или удаление временных таблиц. Можно найти в следующем техническом документе для пояснения к почему временные таблицы не получение кэшируются.
  • Для таблиц, которые требуется часто удаляются и создаются с помощью вместо временных таблиц табличные переменные.
  • Настройка SQL Server для использования флага трассировки 2330 (T2330) в качестве параметра запуска. Этот флаг трассировки отключает набор статистических показателей в DMV sys.dm_db_index_usage_stats и sys.dm_db_missing_index_group_stats Для получения дополнительных сведений о том, как включить флаг трассировки в качестве варианта загрузки, посетите веб-узле MSDN:

http://MSDN.Microsoft.com/en-us/library/ms190737.aspx

  • Обновить до SQL Server 2008. Эта проблема является , специфическими для SQL server 2005 только среды и проблема уже исправлена во всех выпусках SQL Server 2008.
Примечание. Это ЭКСПРЕСС-ПУБЛИКАЦИЯ, подготовленная непосредственно службой технической поддержки Майкрософт . Сведения, содержащиеся в данном документе, предоставлены в качестве отклика на возникшие проблемы. Из-за срочности в материалах могут быть опечатки, и в любое время и без уведомления в них могут быть внесены изменения. Чтобы получить дополнительные сведения, см. Условия использования.

Свойства

Код статьи: 2003031 - Последний отзыв: 30 мая 2011 г. - Revision: 15.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Evaluation Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Service Pack 2
  • Microsoft SQL Server 2005 Service Pack 3
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Express Edition with Advanced Services
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
Ключевые слова: 
kbmt KB2003031 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:2003031

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com