Meu entendimento é que a indexação online adquire bloqueios nas fases inicial (Preparação) e final (Final). No entanto, vemos muitas consultas DML bloqueadas durante a fase de construção.
Uma amostra das consultas bloqueadas mostra que elas têm algumas coisas em comum - o tipo de espera é PAGELATCH_UP, o recurso de espera faz referência a uma página PFS e a consulta usa dicas de bloqueio (NOLOCK, ROWLOCK, etc). As dicas de bloqueio podem estar interferindo?
Alguém pode lançar alguma luz aqui ou me apontar na direção certa?
Deixe-me acrescentar, o comando real foi:
ALTER TABLE dbo.Whatever DROP CONSTRAINT [PK_Whatever] WITH (ONLINE=ON);
Este era o índice clusterizado e não havia índices não clusterizados.
Apesar do que diz a documentação oficial , a eliminação de um índice clusterizado
ALTER TABLE DROP CONSTRAINT
pode ser realizada online (testado no SQL Server 2005-2014):No entanto, realizar uma operação online não significa que outras consultas simultâneas não serão afetadas. A operação online não requer bloqueios de longo prazo, mas ainda pode consumir recursos consideráveis do sistema (por exemplo, memória, processador, E/S). Se esses recursos se tornarem um gargalo, as consultas simultâneas poderão sofrer esperas relacionadas a recursos.
Em seu cenário específico, as
PAGELATCH_UP
esperas nasPFS
páginas indicam contenção de trava nos recursos de alocação. Qualquer ação corretiva possível depende da descrição do recurso associada às esperas de latch.