Dicas de bloqueio
Você pode especificar um intervalo de dicas de bloqueio em nível de tabela com o uso das instruções SELECT, INSERT, UPDATE e DELETE para modificar o comportamento de bloqueio padrão do Microsoft SQL Server Compact 4.0. Use as dicas de bloqueio somente quando for absolutamente necessário. Elas podem afetar a simultaneidade adversamente.
Importante
O SQL Server Compact 4.0 adquire automaticamente os bloqueios necessários para uma operação. Se você usar as dicas de bloqueios listadas na tabela a seguir, o SQL Server Compact 4.0 aumentará a quantidade de bloqueios que ocorrem. Não é possível usar dicas de bloqueio para evitar recursos de bloqueio.
A tabela a seguir descreve as dicas de bloqueio que você pode usar no SQL Server Compact 4.0.
Nome da dica de bloqueio |
Descrição da dica |
---|---|
GRANULARITY |
|
ROWLOCK |
Use os bloqueios em nível de linha ao ler ou modificar dados. Eles são adquiridos e liberados, conforme apropriado. As operações SELECT obtêm bloqueios S nas linhas. |
PAGLOCK |
Use os bloqueios em nível de página ao ler ou modificar dados. Eles são adquiridos e liberados, conforme apropriado. As operações SELECT obtêm bloqueios S nas páginas. |
TABLOCK |
Use um bloqueio de tabela ao ler ou modificar dados. Esse bloqueio é mantido até o final da instrução. As operações SELECT obtêm bloqueios S nas tabelas. |
DBLOCK |
Use um bloqueio de banco de dados ao ler ou modificar dados. Esse bloqueio é mantido até o final da instrução. As operações SELECT obtêm bloqueios S nos bancos de dados. |
LOCKMODES |
|
UPDLOCK |
Use os bloqueios de atualização, e não os bloqueios compartilhados, ao ler uma tabela e use os bloqueios mantidos até o final da instrução ou transação. UPDLOCK permite que você leia dados sem bloquear outros leitores e os atualize depois com a garantia de que eles não foram alterados desde a última leitura. As operações SELECT obtêm bloqueios U. A granularidade padrão é ROWLOCK. |
XLOCK |
Use os bloqueios exclusivos, e não os bloqueios compartilhados, ao ler uma tabela e use os bloqueios mantidos até o final da instrução ou transação. As operações SELECT obtêm bloqueios X. A granularidade padrão é ROWLOCK. |
DURATION |
|
HOLDLOCK |
Use um bloqueio mantido para manter um bloqueio até a conclusão da transação, em vez de liberá-lo assim que a tabela, linha ou página de dados requerida não é mais necessária. Se nenhuma granularidade for especificada, ROWLOCK será aplicado. |
NOLOCK |
Não emite nenhum bloqueio. Esse é o padrão para operações SELECT. Isso não se aplica para instruções INSERT, UPDATE e DELETE.
Observação
Com o SQL Server, uma dica NOLOCK permite o comportamento de Leitura não confirmada. Com o SQL Server Compact 4.0, usar uma dica NOLOCK ainda fornecerá um nível de isolamento de Leitura confirmada. O SQL Server Compact 4.0 mantém cópias de dados para garantir que esses dados possam ler sem a necessidade de bloqueios de compartilhamento para ajudar a proteger os dados.
|
Para obter mais informações sobre como usar as dicas de bloqueio, consulte "Dicas de bloqueio" nos Manuais Online do SQL Server.
Dica NOLOCK
O uso das dicas de bloqueio no SQL Server Compact 4.0 é semelhante ao uso no SQL Server. No entanto, para o SQL Server Compact 4.0, a dica NOLOCK tem um comportamento muito diferente do que no SQL Server. No SQL Server Compact 4.0, a dica NOLOCK é o comportamento para instruções SELECT, mas isso ainda força o comportamento de Leitura confirmada.
No SQL Server, uma instrução SELECT com o nível de isolamento padrão de Leitura confirmada faz com que os bloqueios S sejam obtidos e liberados nas linhas à medida que são lidos. Embora isso force o nível de isolamento, significa que uma instrução SELECT aguardará se existir um bloqueio incompatível em uma linha para a qual o bloqueio S é requerido. Quando a dica NOLOCK é especificada, a operação SELECT não tenta obter o bloqueio S e os dados são lidos. Embora isso permita o êxito da operação, também significa que a instrução SELECT pode ler dados não confirmados.
O SQL Server Compact 4.0 não usa bloqueios S para garantir que os dados sejam de Leitura confirmada. Como o SQL Server Compact 4.0 usa um mecanismo de versão de página quando altera dados, os dados requeridos por uma instrução SELECT podem ser lidos da cópia apropriada da página. Não é necessário obter bloqueios S para garantir a Leitura confirmada. Assim, embora o SQL Server Compact 4.0 esteja usando NOLOCK para uma instrução SELECT, os dados são lidos no nível de isolamento de Leitura confirmada. Não é possível ter uma leitura suja (Leitura não confirmada) com o SQL Server Compact 4.0.
Dica
A dica NOLOCK não afeta os bloqueios Sch-S ou Sch-X.
Consulte também
Conceitos
Nível de isolamento da transação