Partilhar via


Noções básicas de bloqueio

Para entender o bloqueio no Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5), é necessário estar familiarizado com os recursos que podem ser bloqueados e os diferentes modos que podem ser usados para bloqueá-los.

Granularidade do bloqueio

A granularidade do bloqueio refere-se ao nível em que os bloqueios ocorrem:

  • Linha
  • Tabela
  • Página
  • Banco de dados

O bloqueio com uma granularidade menor, como nas linhas, aumenta a simultaneidade, porém será necessário manipular mais bloqueios se muitas linhas forem bloqueadas. O bloqueio em uma granularidade maior, como nas tabelas, reduz a simultaneidade, pois o bloqueio de uma tabela inteira restringe o acesso a qualquer parte da tabela por outras transações. No entanto, no bloqueio em nível de tabela, menos bloqueios devem ser manipulados.

Por padrão, o SQL Server Compact 3.5 usa bloqueio de linha para páginas de dados e bloqueio de página para páginas índice.

A tabela a seguir mostra os recursos que podem ser bloqueados pelo SQL Server Compact 3.5.

Bloqueios Descrição

RID

Identificador de linha. Usado para bloquear uma única linha em uma tabela.

PAG

Página de dados ou página de índice.

TAB

Tabela inteira, inclusive todos os dados e índices

MD

Metadados da tabela. Usado para proteger o esquema de tabela

DB

Banco de dados

Modos de bloqueio

Os modos de bloqueio determinam como as transações simultâneas podem acessar os dados. O SQL Server Compact 3.5 determina qual modo de bloqueio deve ser usado com base nos recursos que podem ser acessados por transações simultâneas.

A tabela a seguir descreve os modos de bloqueio para os quais o SQL Server Compact 3.5 dá suporte.

Modo de bloqueio Descrição

Compartilhado (S)

Protege um recurso para acesso de leitura. Nenhuma outra transação pode modificar os dados enquanto existirem bloqueios compartilhados (S) no recurso.

Exclusivo (X)

Indica uma modificação de dados, como uma inserção, uma atualização ou uma exclusão. Assegura que várias atualizações não sejam realizadas no mesmo recurso ao mesmo tempo.

Atualização (U)

Impede uma forma comum de deadlock. Só uma transação, de cada vez, pode obter um bloqueio de atualização (U) para um recurso. If the transaction modifies the resource, then the U lock is converted to an X lock.

Esquema

Usado quando uma operação dependente do esquema de uma tabela está sendo executada. Os tipos de bloqueios de esquema são: modificação de esquema (Sch-M) e estabilidade de esquema (Sch-S).

Intencional

Estabelece uma hierarquia de bloqueio. Os tipos mais comuns de bloqueio intencional são IS, IU e IX. Esses bloqueios indicam que uma transação está operando em alguns, mas não todos, os recursos inferiores da hierarquia. Os recursos de nível inferior terão um bloqueio S, U ou X.

Importante

Para o nível de isolamento padrão de Leitura Confirmada, uma instrução SELECT no SQL Server Compact 3.5 não requer o uso de bloqueios S para ler os dados. Embora isso seja necessário para o Microsoft SQL Server, o SQL Server Compact 3.5 não precisa do bloqueio S para impor Leitura Confirmada. O único bloqueio necessário para uma instrução SELECT é Sch-S, que protege o esquema enquanto a operação é executada. Como resultado, as instruções SELECT são altamente simultâneas. Para obter mais informações, consulte Nível de isolamento da transação.

Consulte também

Conceitos

Bloqueando [SQL Server Compact 3.5]
Compreendendo o bloqueio
Personalizando o bloqueio

Ajuda e informações

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