Compartilhar via


Simultaneidade

Simultaneidade é a capacidade de vários usuários acessarem dados ao mesmo tempo. Quando o número de operações simultâneas às quais o mecanismo de banco de dados pode oferecer suporte é grande, a simultaneidade do banco de dados aumenta. No Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5), o controle de simultaneidade é obtido usando bloqueios para ajudar a proteger os dados. Os bloqueios controlam como vários usuários podem acessar e alterar dados compartilhados ao mesmo tempo, sem que haja conflito. Para obter mais informações, consulte Bloqueando [SQL Server Compact 3.5].

Problemas de simultaneidade

Os problemas de simultaneidade podem ocorrer quando você não gerencia a modificação e a leitura de dados por vários usuários. Por exemplo, se vários usuários acessarem um banco de dados ao mesmo tempo, suas transações poderão tentar executar operações nos mesmos dados e ao mesmo tempo. Alguns dos problemas de simultaneidade que ocorrem ao usar o SQL Server Compact 3.5 incluem:

  • Atualizações perdidas.
    As atualizações perdidas ocorrem quando duas ou mais transações selecionam a mesma linha e depois atualizam a linha com base no valor selecionado originalmente. A última atualização substitui as atualizações feitas por outras transações, o que resulta em dados perdidos.
  • Análise inconsistente (leituras não repetidas).
    As leituras não repetidas ocorrem quando uma segunda transação acessa a mesma linha várias vezes e lê dados diferentes sempre. Isso envolve várias leituras da mesma linha. As informações são alteradas por outra transação sempre.
  • Leituras de itens fantasmas.
    As leituras de itens fantasmas ocorrem quando uma ação de inserção ou exclusão é executada em uma linha que pertence a um intervalo de linhas que está sendo lido por uma transação. A primeira leitura do intervalo de linhas da transação mostra uma linha que já não existe mais na leitura subseqüente devido à exclusão por uma transação diferente. De maneira semelhante, como resultado da inserção por uma transação diferente, a leitura subseqüente da transação mostra uma linha que não existia na leitura original.

Dica

Um problema de simultaneidade muito comum que o SQL Server Compact 3.5 não enfrenta é a dependência não confirmada (leitura suja). Esse problema ocorre quando uma segunda transação seleciona uma linha que está sendo atualizada por outra transação. A segunda transação está lendo dados que não foram confirmados ainda e podem ser alterados pela transação que atualiza a linha. As leituras sujas ocorrem ao usar o Microsoft SQL Server 2008. Para obter mais informações sobre problemas de simultaneidade, consulte “Efeitos da simultaneidade” nos Manuais Online do SQL Server.

Controle de simultaneidade

Em um cenário de banco de dados, há dois tipos de mecanismos de controle de simultaneidade:

  • Controle de simultaneidade otimista
    O controle de simultaneidade otimista pressupõe que conflitos de recursos entre vários usuários sejam improváveis e permite que as transações sejam executadas sem o bloqueio de qualquer recurso. Os recursos são verificados somente quando as transações tentam alterar dados. Isso determina se qualquer conflito ocorreu (por exemplo, verificando um número de versão). Se um conflito ocorrer, o aplicativo deve ler os dados e tentar fazer a alteração novamente. O controle de simultaneidade otimista não é fornecido com o produto, mas pode ser criado manualmente no seu aplicativo controlando o acesso ao banco de dados.
  • Controle de simultaneidade pessimista
    O controle de simultaneidade pessimista bloqueia os recursos conforme necessário, para a duração de uma transação. O SQL Server Compact 3.5 oferece suporte ao controle de simultaneidade pessimista que bloqueia os recursos quando necessário para a duração de uma transação.

Para obter mais informações sobre a simultaneidade otimista e pessimista, consulte “Tipos de controle de simultaneidade” nos Manuais Online do SQL Server.

Dica

Alguns cenários de plataformas de 64 bits não dão suporte ao acesso simultâneo a um arquivo de banco de dados nas versões mais antigas do . Para obter informações sobre componentes de 64 bits, consulte Gerenciando aplicativos de banco de dados de 64 bits.

Consulte também

Conceitos

Transações (SQL Server Compact)
Bloqueando [SQL Server Compact 3.5]
Acesso multiusuário

Ajuda e informações

Obtendo assistência (SQL Server Compact 3.5 Service Pack 1)