Temos uma lista cada vez maior de guids para os quais precisamos rastrear uma lista sempre crescente de ids inteiros. Nossa implementação atual cria uma sequência sem cache para cada guid.
No entanto, não antecipamos o impacto no desempenho do banco de dados que geraria milhares de sequências e a seleção delas. Devido ao número de sequências em uso de uma só vez, o cache do plano é absolutamente destruído. Outras consultas no servidor estão sofrendo com isso.
Existe uma maneira melhor de rastrear um id sempre crescente para esses guias que podem evitar condições de corrida? Cada guid precisa começar em 1 e incrementar em 1 sem nunca pular um número. Também precisaremos ser capazes de cortar para esse novo método de nossas sequências atuais.
Por exemplo, atualmente o guid 'F642631D-AD28-4943-8340-5E7793EB82B8' terá a sequência dbo.F642631D-AD28-4943-8340-5E7793EB82B8 criada e os valores recuperados comselect Next Value for dbo.F642631D-AD28-4943-8340-5E7793EB82B8
Portanto, não é 100% uma resposta para a pergunta que postei, mas acabamos implementando a opção recompilar e isso interrompeu os problemas de cache do plano que estávamos tendo
Você descartou o uso de colunas IDENTITY? LINK
Em um campo IDENTIDADE, você especifica o valor inicial e, em seguida, quanto incrementar a cada vez, os valores mais comuns são (1,1), que parecem corresponder aos seus critérios.
Parece que você pode adicionar um após o fato também, experimentei com uma tabela temporária e pareceu funcionar, veja o exemplo abaixo:
Levará tempo para tabelas maiores e removerá um bloqueio de modificação de esquema, portanto, é melhor criar novas tabelas e carregá-las.