Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
V Průzkumníku objektů klikněte pravým tlačítkem na server a vyberte Vlastnosti.
Vyberte uzel Upřesnit .
V části Různé změňte
cursor thresholdmožnost na požadovanou hodnotu.
Použijte Transact-SQL
Připojte se k databázovému stroji.
Na panelu Standard vyberte Nový dotaz.
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 thresholdmožnost tak0, 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.
Související obsah
- @@CURSOR_ROWS (Transact-SQL)
- PŘEKONFIGUROVAT (Transact-SQL)
- možnosti konfigurace serveru
-
sp_configure (Transact-SQL) - AKTUALIZOVAT STATISTIKY (Transact-SQL)