Eu tenho uma tabela p com pontos de coluna. Existem alguns milhões de registros na tabela e preciso calcular e atualizar regularmente os pontos de cada linha. Esse processo leva alguns minutos e bloqueia a tabela. Eu preciso ser capaz de inserir e atualizar registros em p enquanto isso. Uma solução que eu estava pensando é criar uma segunda tabela e adicionar uma chave estrangeira para p e a coluna de pontos lá. Se esta tabela estiver bloqueada por alguns minutos, tudo bem. Existem desvantagens/consequências que devo ter em mente com esta solução?
relate perguntas
-
SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado
-
Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?
-
Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?
-
Quais são as principais causas de deadlocks e podem ser evitadas?
-
Como determinar se um Índice é necessário ou necessário
Pelo que me lembro sobre esse banco de dados de suas perguntas anteriores, sugiro que você examine estas alternativas para sua abordagem:
Não tenho certeza de como os pontos são calculados e, como outros, não tenho nenhuma ideia de suas perguntas anteriores, mas por que você precisaria calcular constantemente os valores dos pontos e armazená-los? Se você pode calculá-los com base em outros dados, armazenar o cálculo parece redundante.
Novamente, não tenho certeza de como os pontos são calculados exatamente, mas se forem agregações simples (por exemplo, contagens), seria possível calcular os pontos em uma exibição indexada? Assim, eles estarão sempre atualizados e você não voltará e recalculará os pontos para toda a tabela, mesmo que apenas um subconjunto de linhas tenha mudado desde a última vez que você realizou seus cálculos. Claro que você terá que testar o impacto da manutenção da exibição indexada.