Usamos um dispositivo SQL Server PDW para nosso armazém de dados. Uma das tabelas em nosso armazém é uma tabela replicada com cerca de 20 milhões de linhas. Como parte do nosso processo ETL, precisamos expirar registros antigos dessa dimensão; no entanto, estamos vendo que a atualização de um punhado de registros (<100) leva mais de uma hora para ser concluída. É isso que eu gostaria de melhorar, se puder.
Naturalmente, uma opção em que pensei foi mudar essa dimensão de Replicado para Distribuído. Meus testes mostram que isso resolveria o problema com o processo ETL demorando muito (de 1,5 horas a 30 segundos), mas todas as junções contra a versão Distribuída dessa dimensão seriam afetadas, pois as junções quase nunca se baseiam na mesma distribuição coluna. Quando olho para o plano de execução de algumas dessas consultas, geralmente vejo uma operação ShuffleMove ou BroadcastMove .
Portanto, minha pergunta para o guru do PDW aqui é:
Há algo mais que possa ser feito para melhorar o desempenho da atualização de registros na versão replicada desta dimensão?
Novamente, mudar para uma tabela Distribuída não parece ser a melhor solução, pois afetará centenas de consultas e relatórios SQL já escritos desenvolvidos por outras pessoas.