Sdílet prostřednictvím


Konfigurace serveru: prahová hodnota kurzoru

platí pro:SQL Server

Tento článek popisuje, jak nakonfigurovat cursor threshold možnost konfigurace serveru v SQL Serveru pomocí aplikace SQL Server Management Studio nebo Transact-SQL. Možnost cursor threshold určuje počet řádků v sadě kurzorů, ve kterých jsou sady kurzorů generovány asynchronně. Když kurzory vygenerují sadu klíčů pro sadu výsledků, optimalizátor dotazu odhaduje počet řádků vrácených pro danou sadu výsledků. Pokud optimalizátor dotazu odhaduje, že počet vrácených řádků je větší než tato prahová hodnota, kurzor se vygeneruje asynchronně, což uživateli umožní načíst řádky z kurzoru, zatímco kurzor bude dál naplněn. V opačném případě se kurzor vygeneruje synchronně a dotaz počká, dokud se nevrátí všechny řádky.

Omezení

SQL Server nepodporuje asynchronní generování sad klíčů nebo statických Transact-SQL kurzory. Transact-SQL operace kurzoru, jako OPEN jsou nebo FETCH jsou dávkové, takže asynchronní generování kurzorů Transact-SQL není potřeba. SQL Server nadále podporuje kurzory serveru založené na asynchronní sadě klíčů nebo statické aplikační programovací rozhraní (API), u kterých je nízká latence problém, a to z důvodu odezvy OPEN klienta pro každou operaci kurzoru.

Přesnost optimalizátoru dotazů, která určuje odhad počtu řádků v sadě klíčů, závisí na měně statistiky pro každou tabulku v kurzoru.

Recommendations

Tato možnost je pokročilá a měla by být změněna pouze zkušeným odborníkem na databázi.

Pokud nastavíte cursor threshold-1, všechny sady klíčů se generují synchronně, což má výhody malých sad kurzorů. Pokud nastavíte hodnotu cursor threshold0, všechny sady kláves kurzoru se generují asynchronně. S jinými hodnotami porovná optimalizátor dotazů počet očekávaných řádků v sadě kurzorů a asynchronně sestaví sadu klíčů, pokud překročí počet nastavený .cursor threshold Nenastavujte cursor threshold příliš nízkou hodnotu, protože malé sady výsledků jsou lépe sestavené synchronně.

Povolení

Ve výchozím nastavení se všem uživatelům udělí oprávnění sp_configure bez parametrů nebo pouze s prvním parametrem. Pokud chcete provést sp_configure oba parametry, aby se změnila možnost konfigurace nebo aby příkaz spustil RECONFIGURE , musí být uživateli uděleno ALTER SETTINGS oprávnění na úrovni serveru. Oprávnění ALTER SETTINGS se implicitně uchovává rolemi serveru sysadmin a serveradmin .

Použití aplikace SQL Server Management Studio

  1. V Průzkumníku objektů klikněte pravým tlačítkem na server a vyberte Vlastnosti.

  2. Vyberte uzel Upřesnit .

  3. V části Různé změňte cursor threshold možnost na požadovanou hodnotu.

Použijte Transact-SQL

  1. Připojte se k databázovému stroji.

  2. Na panelu Standard vyberte Nový dotaz.

  3. Zkopírujte a vložte následující příklad do okna dotazu a vyberte Spustit. Tento příklad ukazuje, jak pomocí sp_configure nastavit cursor threshold možnost tak 0 , aby se sady kurzorů generovaly asynchronně.

    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
    

Další informace naleznete v tématu Možnosti konfigurace serveru.

Zpracovat: Po nakonfigurování možnosti prahové hodnoty kurzoru

Nastavení se projeví okamžitě bez restartování serveru.