Konfiguracja serwera: blokady

Dotyczy:SQL Server

W tym artykule opisano sposób konfigurowania locks opcji konfiguracji serwera w programie SQL Server przy użyciu programu SQL Server Management Studio lub Transact-SQL. Opcja locks ustawia maksymalną liczbę dostępnych blokad, która ogranicza ilość pamięci używanej przez aparat bazy danych programu SQL Server. Ustawieniem domyślnym jest wartość 0, która umożliwia aparatowi bazy danych dynamiczne przydzielanie i cofanie przydziału struktur blokady na podstawie zmieniających się wymagań systemowych.

Ważne

Ta funkcja zostanie usunięta w przyszłej wersji programu SQL Server. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji.

Rekomendacje

Ta opcja jest opcją zaawansowaną i powinna zostać zmieniona tylko przez doświadczonych specjalistów w dziedzinie bazy danych.

Gdy serwer jest uruchamiany z ustawieniem locks o wartości 0, menedżer blokad pobiera z Aparatu bazy danych wystarczającą ilość pamięci na potrzeby początkowej puli 2 500 struktur blokad. Gdy pula blokad zostaje wyczerpana, do puli przydzielana jest dodatkowa pamięć.

Zasadniczo, jeśli pula blokad wymaga więcej pamięci, niż jest dostępne w puli pamięci modułu Database Engine, a komputer dysponuje dodatkową pamięcią (nie osiągnięto progu max server memory (MB)), moduł Database Engine przydziela pamięć dynamicznie, aby zaspokoić żądanie przydziału blokad. Jeśli jednak przydzielenie tej pamięci spowodowałoby stronicowanie na poziomie systemu operacyjnego (na przykład jeśli inna aplikacja jest uruchomiona na tym samym komputerze co instancja programu SQL Server i używa tej pamięci), nie zostanie przydzielone dodatkowe miejsce na blokady. Dynamiczna pula blokad nie zajmuje więcej niż 60 procent pamięci przydzielonej do silnika bazy danych. Gdy pula blokad osiągnie 60 procent pamięci przydzielonej wystąpieniu modułu Database Engine lub na komputerze nie jest dostępna dodatkowa pamięć, kolejne żądania blokad powodują wygenerowanie błędu.

Zezwalanie programowi SQL Server na dynamiczne używanie blokad jest zalecaną konfiguracją. Można jednak ustawić locks i zastąpić dynamiczne przydzielanie zasobów blokad przez program SQL Server. Jeśli parametr locks jest ustawiony na wartość inną niż 0, Aparat bazy danych nie może przydzielić większej liczby blokad niż określono w parametrze locks. Zwiększ tę wartość, jeśli program SQL Server wyświetli komunikat o przekroczeniu liczby dostępnych blokad. Ponieważ każda blokada zużywa pamięć (96 bajtów na blokadę), zwiększenie tej wartości może wymagać zwiększenia ilości pamięci dedykowanej serwerowi.

Opcja locks ma również wpływ na eskalację blokady. Gdy locks jest ustawione na 0, eskalacja blokad występuje, gdy pamięć używana przez bieżące struktury blokad osiągnie 40% puli pamięci Aparatu bazy danych. Jeśli locks wartość nie jest ustawiona na 0, eskalacja blokady występuje, gdy liczba blokad osiągnie 40 procent wartości określonej dla locks.

Permissions

Uprawnienia do wykonywania elementu sp_configure bez parametrów lub tylko z pierwszym parametrem są domyślnie przyznawane wszystkim użytkownikom. Aby wykonać sp_configure z użyciem obu parametrów w celu zmiany opcji konfiguracji lub uruchomienia instrukcji RECONFIGURE, użytkownik musi mieć uprawnienie ALTER SETTINGS na poziomie serwera. Uprawnienie ALTER SETTINGS jest niejawnie posiadane przez stałe role serwera sysadmin i serveradmin.

Korzystanie z programu SQL Server Management Studio

  1. W Eksploratorze obiektów kliknij prawym przyciskiem myszy serwer i wybierz polecenie Właściwości.

  2. Wybierz węzeł Zaawansowany .

  3. W obszarze Równoległość wpisz żądaną wartość locks dla opcji .

    locks Użyj opcji , aby ustawić maksymalną liczbę dostępnych blokad, która ogranicza ilość pamięci używanej przez program SQL Server.

Korzystanie z Transact-SQL

  1. Połącz się z silnikiem bazy danych.

  2. Na pasku Standardowym wybierz pozycję Nowe zapytanie.

  3. Skopiuj poniższy przykład i wklej go w oknie zapytania, a następnie wybierz pozycję Wykonaj. W tym przykładzie pokazano, jak użyć sp_configure, aby ustawić wartość opcji locks tak, aby liczba blokad dostępnych dla wszystkich użytkowników wynosiła 20000.

    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'locks', 20000;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'show advanced options', 0;
    GO
    
    RECONFIGURE;
    GO
    

Aby uzyskać więcej informacji, zobacz Opcje konfiguracji serwera.

Następnie: po skonfigurowaniu opcji blokady

Przed rozpoczęciem działania ustawienia należy ponownie uruchomić serwer.