Eu tenho um monte de tabelas sem chave primária. Alguns já possuem um índice não clusterizado composto pelo que seria a Chave Primária (ClaimID, LineNBR). As colunas usadas estão atualmente definidas para aceitar NULLs, então eu precisaria alterar isso. Existe valor em criar uma chave primária para isso e isso tornaria supérfluo o índice não clusterizado nas mesmas colunas? É melhor deixá-los apenas com o índice não clusterizado, excluir o índice não clusterizado e torná-lo uma chave primária ou adicionar a chave primária E manter o índice não clusterizado?
Os padrões de uso da tabela são o principal fator para saber se você precisa deles ou não. Em cargas de trabalho OLTP, você geralmente as deseja. Se você está apenas despejando dados nessas tabelas e relatando-os em grandes varreduras, eles provavelmente são menos valiosos.
E embora você possa não precisar de uma Chave Primária, adicionar um índice clusterizado pode ajudar a evitar problemas que surgem quando as tabelas são Heaps (tabelas sem índices clusterizados).
Novamente, os padrões de uso serão mais importantes: se você nunca atualizar ou excluir dados armazenados em heaps, não terá esses problemas específicos:
Buscas encaminhadas
Como corrigir registros encaminhados
Identificar e corrigir registros encaminhados do SQL Server
Como os registros encaminhados são lidos e processados em um heap do SQL Server
Encaminhamento e encaminhamento de registros e o tamanho do ponteiro de retorno
Páginas cativas
DELETE em uma tabela de heap
Heaps, exclusões e níveis de isolamento otimistas
SQL Server: Dentro de uma operação DELETE em Heaps
SQLskills SQL101: Por que meu heap tem um monte de páginas vazias?