Noções básicas de bloqueio
Para compreender o bloqueio no Microsoft SQL Server Compact 4.0, é 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 4.0 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 4.0.
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 4.0 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 4.0 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. Se a transação modificar o recurso, o bloqueio U será convertido em um bloqueio X. |
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 4.0 não requer o uso de bloqueios S para ler os dados. Embora isso seja necessário para o MicrosoftSQL Server, o SQL Server Compact 4.0 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.