Locking Hints

Blokowanie wskazówki mogą być określone dla pojedynczej tabela odwołań w SELECT, INSERT, UPDATE i DELETE instrukcji.The hints specify the type of locking or row versioning the instance of the Microsoft SQL Server Database Engine uses for the table data.Tabela-poziom wskazówki blokowania może być używany, gdy wymagane jest lepiej formantu typu blokady nabyte na obiekcie.Te wskazówki blokowania zastąpić bieżący poziom izolacji transakcji dla tej sesja.

Aby uzyskać więcej informacji na temat określonych wskazówki blokowania i ich zachowania zobacz Wskazówki do tabela (języka Transact-SQL).

Uwaga

The Database Engine optymalizator kwerendy almost always chooses the correct locking poziom. Zaleca się, że poziomie tabela wskazówki blokowania służyć do zmiany zachowania blokowania domyślny tylko wtedy, gdy jest to konieczne.Brak zezwolenia na poziom blokowania może niekorzystnie wpłynąć na współbieżność.

The Database Engine might have to acquire locks when reading metadane, even when processing a select with a locking hint that prevents requests for share locks when reading data. Na przykład SELECT korzystania wskazówka NOLOCK nie nabywa blokad współużytkowania, podczas odczytywania danych, ale może być sometime żądanie blokady podczas odczytywania widoku wykazu systemu.Oznacza to, może się zdarzyć, że instrukcja SELECT za pomocą NOLOCK zablokowana.

Jak pokazano w poniższym przykładzie, jeżeli ustawiono poziom izolacji transakcji SERIALIZABLE, a Wskazówka blokady poziomie tabela NOLOCK jest używana z SELECT Instrukcja, blokad zakres klucz zazwyczaj używany do obsługi transakcji możliwy do serializacji nie zostaną podjęte.

USE AdventureWorks;
GO
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
GO
BEGIN TRANSACTION;
GO
SELECT Title
    FROM HumanResources.Employee WITH (NOLOCK);
GO

-- Get information about the locks held by 
-- the transaction.
SELECT  
        resource_type, 
        resource_subtype, 
        request_mode
    FROM sys.dm_tran_locks
    WHERE request_session_id = @@spid;

-- End the transaction.
ROLLBACK;
GO

Zablokuj tylko pobrane odwołujący się do HumanResources.Employee Blokada stabilności (SCH-S) schematu. W takim przypadek nie jest gwarantowane uszeregowieniem.

W SQL Server 2008, opcja LOCK_ESCALATION instrukcji ALTER tabela można disfavor blokady tabela i Włącz HoBT blokuje na podzielony na partycje tabel. Ta opcja nie jest wskazówkę blokada, ale może, ale umożliwia zmniejszenie eskalacji blokada.Aby uzyskać więcej informacji zobaczALTER tabela (języka Transact-SQL).