Entrar com a conta da Microsoft
Entrar ou criar uma conta.
Olá,
Selecionar uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

Sintomas

Considere o seguinte cenário:

  • Você insere várias linhas em uma tabela no Microsoft SQL Server 2008 ou no SQL Server 2008 R2 usando uma das seguintes consultas:

    • INSERT INTO <target_table> SELECT * FROM <target_table> WHERE <predicate>
    • SELECT * INTO <target_table> FROM <source_table> WHERE <predicate>

    Observações

    • O espaço reservado <target_table> representa o nome da tabela de destino real.

    • O predicado<> espaço reservado representa o predicado real.

    • O espaço reservado <source_table> representa a tabela de origem real.

  • O limite de escalonamento de bloqueio da tabela foi excedido.

Nesse cenário, o mecanismo de banco de dados não escalona os bloqueios da tabela.

Causa

Esse problema ocorre porque o SQL Server não contará internamente todos os novos bloqueios gerados por operações de inserção. Portanto, o limite de escalonamento de bloqueio pode não ser disparado quando é necessário.

Resolução

Informações do Service Pack para o SQL Server 2008

Para solucionar esse problema, obtenha o Service Pack mais recente para o SQL Server 2008. para obter mais informações, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

968382 Como obter o Service Pack mais recente para o SQL Server 2008

Informações do Service Pack para SQL Server 2008 R2

Para solucionar esse problema, obtenha o Service Pack mais recente do SQL Server 2008 R2. Para obter mais informações, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

2527041Como obter o Service Pack mais recente para o SQL Server 2008 R2

Status

A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".Esse problema foi corrigido primeiro no SQL Server 2008 Service Pack 2 para SQL Server 2008. esse problema foi corrigido primeiro no SQL Server 2008 R2 Service Pack 1 para SQL Server 2008 R2.

Informações adicionais

Para obter mais informações sobre o escalonamento de bloqueios, acesse o seguinte site do Microsoft TechNet:

Informações gerais sobre o escalonamento de bloqueiosPara determinar se os bloqueios de uma tabela são escalonados, execute as seguintes instruções Transact-SQL:

USE tempdbGOCREATE TABLE x (i INT NOT NULL PRIMARY KEY)GOBEGIN TRANINSERT xSELECT TOP (40000)ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS rFROM master..spt_values a, master..spt_values bORDER BYrSELECTCOUNT(*)FROM sys.dm_tran_locksWHERE request_session_id = @@SPID ROLLBACKGODROP TABLE x 

Se os bloqueios da tabela forem escalados, a última instrução SELECT retornará um valor de 1 ou 2. Se os bloqueios da tabela não forem escalados, a última instrução SELECT retornará um valor de 40.066 ou 40.067.

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?
Ao pressionar enviar, seus comentários serão usados para aprimorar os produtos e serviços da Microsoft. Seu administrador de TI poderá coletar esses dados. Política de Privacidade.

Agradecemos seus comentários!

×