"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Leia a leitura comprometida vs. repetível no SQL Server: Qual é a diferença?

Leia a leitura comprometida vs. repetível no SQL Server: Qual é a diferença?

Publicado em 2025-01-29
Navegar:516

Read Committed vs. Repeatable Read in SQL Server: What's the Difference?
!

níveis de isolamento "Read Community" e "Reperacionable Repertable Read" do SQL Server garantem a consistência dos dados, mas suas principais diferenças não podem ser ignoradas.

Leia o nível de isolamento da comunidade

]

A comunidade de leitura garante que os dados lidos para transações tenham sido enviados antes que a transação seja visível. No entanto, se os dados forem atualizados com os dados e os mesmos dados serão lidos novamente, o resultado será consistente.

Repertable Leia nível isolado

Por outro lado, a leitura repetível fornece uma consistência de nível mais alta. Ele não apenas garante que as leituras de dados tenham sido enviadas, mas também garantem que os dados permaneçam inalterados durante toda a transação. Mesmo que outras transações sejam atualizadas, os resultados originais da leitura permanecem consistentes.

Exemplo

Considerando a seguinte cena, a Tabela T contém uma coluna C com um valor de '1'.

iniciar transação; Selecione * de t; Espera para atrasar '00: 01: 00 '; Selecione * de t; Comprometer-se;

leia comprometido:

A segunda instrução SELECT pode retornar quaisquer dados atualizados ou modificados, porque os dados podem alterar durante o atraso.

repertable Read:
BEGIN TRANSACTION;
SELECT * FROM T;
WAITFOR DELAY '00:01:00';
SELECT * FROM T;
COMMIT;
outros níveis de isolamento
  • Além da comunidade de leitura e leitura repertável, o SQL Server também fornece outros níveis de isolamento:
  • Serializable: para garantir completamente o isolamento para evitar qualquer modificação simultânea, excluir ou inserir operação.
  • Snapshot:
é semelhante ao Serializable, mas use instantâneos para fornecer consistência sem bloquear transações simultâneas.

selecione o nível de isolamento direito

A escolha do nível de isolamento depende das necessidades de aplicativos específicas. Embora níveis mais altos de isolamento garantem consistência, eles também podem afetar a escalabilidade e o desempenho. Para aplicações que podem ser toleradas repetidamente, a comunidade de leitura é um nível de isolamento adequado. Para aplicativos que precisam ser consistentes e não podem tolerar alterações de dados durante a execução de transações, é recomendável usar leitura repetível.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3