Serverkonfiguration: Cursorschwellenwert
Gilt für: SQL Server
In diesem Artikel wird beschrieben, wie Sie die cursor threshold
Serverkonfigurationsoption in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL konfigurieren. Die cursor threshold
Option gibt die Anzahl der Zeilen im Cursorsatz an, an der Cursortastengruppen asynchron generiert werden. Wenn Cursor eine Keyset für ein Resultset generieren, schätzt der Abfrageoptimierer die Anzahl der Zeilen, die für diesen Resultset zurückgegeben werden. Wenn der Abfrageoptimierer schätzt, dass die Anzahl der zurückgegebenen Zeilen über diesem Schwellenwert liegt, wird der Cursor asynchron generiert. Dadurch kann der Benutzer Zeilen aus dem Cursor abrufen, während der Cursor weiterhin aufgefüllt wird. Andernfalls wird der Cursor synchron generiert, und die Abfrage wartet, bis alle Zeilen zurückgegeben wurden.
Begrenzungen
SQL Server unterstützt das asynchrone Generieren von keysetgesteuerten oder statischen Transact-SQL-Cursorn nicht. Transact-SQL-Cursorvorgänge, z OPEN
FETCH
. B. batched, sodass keine asynchrone Generierung von Transact-SQL-Cursorn erforderlich ist. SQL Server unterstützt weiterhin asynchrone keysetgesteuerte oder statische API-Servercursor (Application Programming Interface), bei denen aufgrund von Client-Roundtrips für jeden Cursorvorgang eine geringe Latenz OPEN
ein Problem darstellt.
Die Genauigkeit des Abfrageoptimierers beim Bestimmen der Anzahl der Zeilen in einem Keyset hängt davon ab, wie aktuell die Statistiken für die einzelnen Tabellen im Cursor sind.
Empfehlungen
Diese Option ist eine erweiterte Option und sollte ausschließlich von einem erfahrenen Datenbankadministrator oder einem zertifizierten SQL Server -Experten geändert werden.
Wenn Sie diesen -1
Wert festlegencursor threshold
, werden alle Keysets synchron generiert, was kleinen Cursorsätzen zugute kommt. Wenn Sie auf <cursor threshold
, werden alle Cursortastengruppen asynchron generiert. Mit anderen Werten vergleicht der Abfrageoptimierer die Anzahl der erwarteten Zeilen im Cursorsatz und erstellt das Keyset asynchron, wenn er den Zahlensatz cursor threshold
überschreitet. Legen Sie nicht zu niedrig fest cursor threshold
, da kleine Resultsets synchron erstellt werden.
Berechtigungen
Die Ausführungsberechtigungen für sp_configure
ohne Parameter oder nur mit dem ersten Parameter werden standardmäßig allen Benutzern erteilt. Um sp_configure
mit beiden Parametern auszuführen und eine Konfigurationsoption zu ändern oder die RECONFIGURE
-Anweisung auszuführen, benötigt ein Benutzer die ALTER SETTINGS
-Berechtigung auf Serverebene. Die ALTER SETTINGS
-Berechtigung ist implizit in den festen Serverrollen sysadmin und serveradmin enthalten.
Verwenden von SQL Server Management Studio
Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf einen Server, und wählen Sie Eigenschaften aus.
Wählen Sie den Knoten Erweitert aus.
Ändern Sie unter "Sonstiges" die
cursor threshold
Option auf den gewünschten Wert.
Verwenden von Transact-SQL
Stellen Sie eine Verbindung mit dem Datenbank-Engineher.
Klicken Sie in der Standardleiste auf Neue Abfrage.
Kopieren Sie das folgende Beispiel in das Abfragefenster, und klicken Sie dann auf Ausführen. In diesem Beispiel wird gezeigt, wie Sie sp_configure zum Festlegen der Option
cursor threshold
auf0
verwenden, damit Cursor-Keysets asynchron generiert werden.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
Weitere Informationen finden Sie unter Serverkonfigurationsoptionen.
Nachverfolgung: Nachdem Sie die Option für den Cursorschwellenwert konfiguriert haben
Die Einstellung tritt ohne Neustarten des Servers sofort in Kraft.