Eu li no stackoverflow que o bloqueio pode ser um problema ao usar tabelas com chave de processo e gostaria de saber se você tem alguma sugestão sobre como minimizar ou evitar contenção desnecessária (por exemplo, bloqueios de tabela) ao usar esses tipos de tabelas. Aqui estão alguns antecedentes:
Estou desenvolvendo um processo em lote que insere as linhas resultantes de uma chamada de procedimento armazenado em uma tabela. Não tenho controle sobre o procedimento armazenado. A tabela é codificada pelo ID do processo (@@spid) porque precisa ser lida por vários procedimentos armazenados a seguir e não deve entrar em conflito com outros lotes em execução ao mesmo tempo. Isso não deve ser um problema muito grande porque é um servidor de baixo volume, por exemplo, muitos desses lotes não serão executados simultaneamente. Ainda assim, não gostaria de criar bloqueios de tabela se isso pudesse ser evitado, pois imagino que o bloqueio pode causar falhas ou atrasos inesperados.
Algum conselho?
Você disse
Portanto, eu não faria nada. Dicas só devem ser adicionadas de forma muito criteriosa quando necessário. Tal como está, você não tem nenhum problema conhecido para resolver.
Se você ainda quiser adicionar uma dica, simplesmente use ROWLOCK para não permitir bloqueios de tabela.