Проблема: Вложенный цикл соединения, использующей объект «BOOKMARK LOOKUP.. .WITH PREFETCH "может удерживать блокировку длиной

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

Проблема

Если план выполнения цикла соединения Nested и поиск закладок, где используется предложение WITH PREFETCH, блокировки в течение всего соединения вложенных циклов, определяя подходящий закладки. После закладки используется для извлечения данных столбца необработанных данных помещается в выходной буфер, затем снятия блокировки. Это может привести к блокировке другие системы идентификаторы процессов (spids).

Временное решение

При изменении подсказка соединения LOOP ХЭШИРОВАНИЯ или MERGE блокировки не происходит.

Дополнительная информация

Это может быть показано с помощью в следующем примере:
SELECT c.mstr_acct, c.last_name_m, c.first_name, c.name_prefix, c.company_name
FROM tickler a 
 INNER LOOP JOIN member b    ON a.mbr_acct = b.mbr_acct 
 INNER LOOP JOIN person c    ON b.mstr_acct = c.mstr_acct 
WHERE a.tickler_code = 'SPIRITEXT' 
				
надписьюИНСТРУКЦИИ SHOWPLANвыходные данные для предыдущего запроса выглядит следующим образом:
StmtText                                                                                                                                            
---------------------------------------------------------------------------------------------------------------------------------------------
  |--Bookmark Lookup(BOOKMARK:([Bmk1002]), OBJECT:([TestLoopJoin].[dbo].[person] AS [c]) WITH PREFETCH)
       |--Nested Loops(Inner Join)
            |--Nested Loops(Inner Join)
            |    |--Index Seek(OBJECT:([TestLoopJoin].[dbo].[tickler].[tickler_code] AS [a]), SEEK:([a].[tickler_code]='SPIRITEXT') ORDERED)
            |    |--Clustered Index Seek(OBJECT:([TestLoopJoin].[dbo].[member].[pk_member] AS [b]), SEEK:([b].[mbr_acct]=[a].[mbr_acct])  ORDERED)
            |--Index Seek(OBJECT:([TestLoopJoin].[dbo].[person].[pk_person] AS [c]), SEEK:([c].[mstr_acct]=[b].[mstr_acct]) ORDERED)
				
Режим блокировки сразу отражается, запуская другое подключение, которое производит UPDATE на первые несколько строк выбранных из таблицы. Можно заметить, что UPDATE заблокирован, пока не будут обработаны все закладки поиска для инструкции SELECT, и строки отправляются клиенту.Поиск закладок

Логический и физический оператор Bookmark Lookup использует закладки (идентификатор строки или ключу кластеризации) для поиска соответствующей строки в таблице или кластеризованном индексе. Столбец аргумент содержит метку закладки, используемый для поиска строки в таблице или кластеризованном индексе. Столбец аргумент содержит также имя таблицы или кластеризованного индекса, в которой ищутся строки. Если предложение WITH PREFETCH отображается в столбце аргумент, затем обработчик запросов определяет то, что оптимальное использование асинхронных prefetching (упреждающего чтения) при поиске закладки в таблице или кластеризованном индексе.

Свойства

Код статьи: 260652 - Последний отзыв: 19 ноября 2010 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
Ключевые слова: 
kbpending kbprb kbmt KB260652 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:260652

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

 

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