KB4089473 - Улучшенное устранение неполадок с взаимоблокировками параллелизма между запросами в SQL Server 2017 и 2016

Применяется к
SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core SQL Server 2016 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Сводка

В этом обновлении SQL Server улучшено устранение неполадок, связанных с взаимоблокировками, связанными с параллелизмом (Exchange), путем добавления следующих усовершенствований:

  • Событие xEvent exchange_spill сообщает, сколько операторов параллелизма переносится на каждый поток, в имени поля события worktable_physical_writes. Каждый поток может сообщать о exchange_spill xEvent несколько раз.

  • Представления DMV sys.dm_exec_query_stats, sys.dm_exec_procedure_stats и sys.dm_exec_trigger_stats теперь включают данные, перенесенные операторами параллелизма, в столбцах total_spills, last_spills, max_spills и min_spills.

  • Предупреждение showplan выводится во время выполнения при наличии переноса параллелизма. Это предупреждение отображается в атрибуте showplan xml (<ExchangeSpillDetails WritesToTempDb="spill_amount" />).

  • Граф взаимоблокировок XML улучшен для сценариев взаимоблокировок параллелизма. Дополнительные атрибуты добавляются к ресурсу exchangeEvent в следующих разделах:

    • waiterType – потребитель, производитель, координатор.
    • TID — уникальный идентификатор для каждого потока внутри параллельного плана.
    • ownerActivity — что владельцы ресурсов делали ранее. Может принимать значения: "receivedData", "sentData", "notYetOpened" или "opened".
    • waiterActivity — то, что пытается сделать инициатор запроса ресурсов. Возможные варианты: "tryToSendData", "needMoreData", "waitForAllConsumersToBeReady", "waitForAllOwnersToOpen" или "waitForAllownersToClose".
    • Слияние — указывает, участвует ли официант в объединении данных.
    • перенос — указывает, переносит ли данные официант или нет.
    • waitingToClose — ожидает ли ожидающий, пока потребитель закроет канал.
  • Улучшен граф взаимоблокировок XML для взаимоблокировок с участием операторов пакетного режима. Дополнительные атрибуты добавляются к ресурсу SyncPoint в следующих разделах:

    • logicalOperatorType — логический тип оператора, соответствующий типу в xml showplan.

    • physicalOperatorType — физический тип оператора, соответствующий типу в xml showplan.

    • WaitType и synchronizingAt — два атрибута могут совместно определять точку, в которой синхронизируются официанты и владельцы.

      Примечания

      • Значения атрибутов WaitType и synchronizingAt являются внутренними. Но их можно использовать, чтобы помочь службе поддержки Майкрософт устранить проблему.
      • Атрибут synchronizingAt добавляется для операторов пакетной сортировки, хэш-соединения и агрегирования хэшей.
    • ownerActivity — всегда «NotYetArrived».

    • waiterActivity — всегда «Доставлено».

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

Это обновление входит в накопительный пакет обновления 5 для SQL Server 2017.

Сведения о пакете обновления для SQL Server 2016

Это обновление исправлено в следующем пакете обновления для SQL Server:

Пакет обновления 2 для SQL Server 2016

Сведения о сборках SQL Server 2017

Каждая новая сборка SQL Server 2017 содержит все исправления и исправления безопасности, которые были в предыдущей сборке. Рекомендуется установить последнюю сборку SQL Server 2017.

Сведения о пакетах обновления для SQL Server

Пакеты обновления суммируются. Каждый новый пакет обновления содержит все исправления, которые были в предыдущих пакетах обновления, а также все новые исправления. Мы рекомендуем применять последний пакет обновления и последний накопительный пакет обновления для этого пакета обновления. Перед установкой последнего пакета обновления устанавливать предыдущий пакет обновления не требуется. Дополнительные сведения о последнем пакете обновления и последнем накопительном пакете обновления см. в таблице 1 в следующей статье.

Определение версии, выпуска и уровня обновления SQL Server и его компонентов

Ссылки

Узнайте о терминологии , используемой корпорацией Майкрософт для описания обновлений программного обеспечения.