PROBLEMA: Aninhado associação de ciclo que utiliza A "BOOKMARK Proc.. pré-OBTENÇÃO .WITH" pode reter bloqueios mais

Traduções de Artigos Traduções de Artigos
Artigo: 260652 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sintomas

Se utilizar um plano de execução de uma associação de ciclo Nested e uma pesquisa de marcador, que utiliza a cláusula WITH pré-OBTENÇÃO, os bloqueios são mantidos para a duração das associações de ciclo aninhado determinar os marcadores elegíveis. Depois do marcador é utilizado para obter os dados de coluna pendentes e que dados são colocados na memória intermédia de saída, o bloqueio, em seguida, é editado. Este comportamento pode originar o bloqueio de outros ids de processo do sistema (spids).

Como contornar

Se alterar a sugestão de associação de LOOP HASH ou impressão em série, o bloqueio não ocorre.

Mais Informação

Este comportamento pode ser ilustrado utilizando o seguinte exemplo:
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' 
				
o SHOWPLAN saída para a consulta precedente segue:
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)
				
o comportamento de bloqueio é observado rapidamente iniciando outra ligação que efectua uma UPDATE primeiras linhas a selecção da tabela. Irá note que o UPDATE está bloqueada até que todas as procuras no marcador para a instrução SELECT são processadas e as linhas são enviadas para o cliente. pesquisa de marcador

O operador de lógico e físico da pesquisa de marcador utiliza um marcador (ID de linha ou chave de clusters) para procurar a linha correspondente na tabela ou índice agrupado. A coluna de argumento contém o nome de marcador utilizado para procurar a linha na tabela de índice agrupado. A coluna de argumento também contém o nome da tabela ou índice clusterizado no qual a linha é procurada. Se a cláusula WITH pré-OBTENÇÃO for apresentado na coluna argumento, em seguida, o processador de consultas determinou que é ideal para utilizar assíncrona prefetching (leitura antecipada) quando procurar marcadores na tabela ou índice agrupado.

Propriedades

Artigo: 260652 - Última revisão: 17 de outubro de 2003 - Revisão: 3.2
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Palavras-chave: 
kbmt kbpending kbprb KB260652 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 260652

Submeter comentários

 

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