Udostępnij za pomocą


Konfiguracja serwera: próg kursora

Dotyczy:SQL Server

W tym artykule opisano sposób konfigurowania cursor threshold opcji konfiguracji serwera w programie SQL Server przy użyciu programu SQL Server Management Studio lub Transact-SQL. Opcja cursor threshold określa liczbę wierszy w zestawie kursorów, w których klucze kursora są generowane asynchronicznie. Gdy kursory generują zestaw kluczy dla zestawu wyników, optymalizator zapytań szacuje liczbę wierszy zwracanych dla tego zestawu wyników. Jeśli optymalizator zapytań szacuje, że liczba zwracanych wierszy jest większa niż ten próg, kursor jest generowany asynchronicznie, umożliwiając użytkownikowi pobieranie wierszy z kursora, gdy kursor będzie nadal wypełniany. W przeciwnym razie kursor jest tworzony synchronicznie, a zapytanie czeka aż wszystkie wiersze zostaną zwrócone.

Ograniczenia

Program SQL Server nie obsługuje generowania kursorów opartych na zestawie kluczy ani statycznych Transact-SQL asynchronicznie. Transact-SQL operacje kursora, takie jak OPEN lub FETCH są wsadowe, więc nie ma potrzeby asynchronicznego generowania kursorów Transact-SQL. SQL Server nadal obsługuje asynchroniczne kursory serwera, które są oparte na zestawach kluczy lub statycznych interfejsach programowania aplikacji (API), tam gdzie niskie opóźnienia mają znaczenie, ze względu na każdą operację kursora wymagającą podróży klienta do serwera.

Dokładność optymalizatora zapytań w celu określenia oszacowania liczby wierszy w zestawie kluczy zależy od waluty statystyk dla każdej z tabel w kursorze.

Rekomendacje

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

Jeśli ustawisz wartość cursor threshold-1, wszystkie zestawy kluczy są generowane synchronicznie, co przynosi korzyści małym zestawom kursorów. Jeśli ustawisz cursor threshold na 0, wszystkie zestawy kluczy kursora są generowane asynchronicznie. W przypadku innych wartości optymalizator zapytań porównuje liczbę oczekiwanych wierszy w zestawie kursorów i tworzy asynchronicznie zestaw kluczy, jeśli przekroczy liczbę ustawioną w cursor threshold. Nie ustawiaj cursor threshold zbyt małej wartości, ponieważ małe zestawy wyników są lepiej kompilowane synchronicznie.

Permissions

Wykonywanie uprawnień bez sp_configure parametrów lub tylko pierwszy parametr jest domyślnie udzielany wszystkim użytkownikom. Aby wykonać sp_configure z obu parametrami w celu zmiany opcji konfiguracji lub uruchomienia instrukcji RECONFIGURE, użytkownik musi posiadać uprawnienia ALTER SETTINGS na poziomie serwera. Uprawnienie ALTER SETTINGS jest niejawnie przechowywane przez administrator systemu i administrator serwera stałe role serwera.

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óżne zmień cursor threshold opcję na odpowiednią wartość.

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ć cursor threshold opcję tak 0 , aby zestawy kursora zostały wygenerowane asynchronicznie.

    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'cursor threshold', 0;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'show advanced options', 0;
    GO
    
    RECONFIGURE;
    GO
    

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

Śledź: po skonfigurowaniu opcji progowej kursora

Ustawienie zostanie zastosowane natychmiast bez ponownego uruchomienia serwera.