Udostępnij przez


Dynamic Locking

Użycie blokady niskiego poziom, takich jak blokad wiersza zwiększa współbieżność przez zmniejszenie prawdopodobieństwa, że dwie transakcje będzie żądał blokad na tym samym arkuszu danych, w tym samym czasie.Również używania blokad niskiego poziom zwiększa liczbę blokad i zasobami potrzebnymi do zarządzania nimi.Za pomocą tabela wysokiego poziom lub strona blokad zmniejsza obciążenie, ale jest koszt z obniżeniem współbieżność.

Diagram showing cost versus granularity

The Microsoft SQL Server Database Engine uses a dynamic locking strategy to determine the most cost-effective locks.The Database Engine automatically determines what locks are most appropriate when the query is executed, based on the characteristics of the schema and query.Na przykład aby zmniejszyć obciążenie związane z blokowaniem, Optymalizator może wybrać blokowania poziom strona w indeksie podczas wykonywania skanowanie indeksu.

blokowanie dynamiczne ma następujące zalety:

  • Uproszczone zarządzanie bazą danych.Administratorzy baz danych nie trzeba dopasować eskalacja blokad progi.

  • Zwiększona wydajność.The Database Engine minimizes system overhead by using locks appropriate to the task.

  • Deweloperzy aplikacji mogą koncentrować się na rozwój.The Database Engine adjusts locking automatically.

W SQL Server 2008, korzystając z opcji LOCK_ESCALATION zmienił się zachowanie eskalacji blokada. Aby uzyskać więcej informacji zobacz temat możliwość LOCK_ESCALATION ALTER tabela.