Konfigurieren der Serverkonfigurationsoption Cursorschwellenwert
In diesem Thema wird beschrieben, wie die Serverkonfigurationsoption Cursorschwellenwert in SQL Server 2012 mithilfe von SQL Server Management Studio oder Transact-SQL konfiguriert wird. Mit der Option Cursorschwellenwert können Sie die Anzahl der Zeilen im Cursorset angeben, bei der Cursor-Keysets asynchron generiert werden. Wenn Cursor ein Keyset für ein Resultset generieren, schätzt der Abfrageoptimierer die Anzahl der Zeilen, die für dieses 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 so lange, bis alle Zeilen zurückgegeben wurden.
In diesem Thema
Vorbereitungen:
Einschränkungen
Empfehlungen
Sicherheit
So konfigurieren Sie die Option Cursorschwellenwert mit:
SQL Server Management Studio
Transact-SQL
Nachverfolgung: Nach dem Konfigurieren der Option Cursorschwellenwert
Vorbereitungen
Einschränkungen
In SQL Server wird das asynchrone Generieren von keysetgesteuerten oder statischen Transact-SQL-Cursorn nicht unterstützt. Transact-SQL-Cursorvorgänge, z. B. OPEN oder FETCH, sind in Batches enthalten. Daher ist das asynchrone Generieren von Transact-SQL-Cursorn nicht erforderlich. In SQL Server werden weiterhin asynchrone keysetgesteuerte oder statische API (Application Programming Interface)-Servercursor unterstützt, wobei OPEN mit geringer Latenzzeit ein Problem darstellt. Dies ist auf Clientroundtrips zurückzuführen, die für jeden Cursorvorgang ausgeführt werden.
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-Techniker geändert werden.
Wenn Sie Cursorschwellenwert auf -1 festlegen, werden alle Keysets synchron generiert, was für kleine Cursorsets vorteilhaft ist. Wenn Sie Cursorschwellenwert auf 0 festlegen, werden alle Cursor-Keysets asynchron generiert. Bei anderen Werten vergleicht der Abfrageoptimierer die Anzahl der erwarteten Zeilen im Cursorset und erstellt das Keyset asynchron, wenn die Anzahl der in Cursorschwellenwert festgelegten Zeilen überschritten wird. Sie sollten die Option Cursorschwellenwert nicht zu niedrig festlegen, da es besser ist, kleine Resultsets synchron zu erstellen.
Sicherheit
Berechtigungen
Die Ausführungsberechtigungen für sp_configure ohne Parameter oder nur mit dem ersten Parameter werden standardmäßig allen Benutzern erteilt. Zum Ausführen von sp_configure mit beiden Parametern zum Ändern einer Konfigurationsoption oder zum Ausführen der RECONFIGURE-Anweisung muss einem Benutzer die ALTER SETTINGS-Berechtigung auf Serverebene erteilt worden sein. Die ALTER SETTINGS-Berechtigung ist in den festen Serverrollen sysadmin und serveradmin eingeschlossen.
[Top]
Verwendung von SQL Server Management Studio
So konfigurieren Sie die Option "Cursorschwellenwert"
Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf einen Server, und wählen Sie Eigenschaften aus.
Klicken Sie auf den Knoten Erweitert.
Geben Sie unter Verschiedenes für die Option Cursorschwellenwert den gewünschten Wert an.
[Top]
Verwendung von Transact-SQL
So konfigurieren Sie die Option "Cursorschwellenwert"
Stellen Sie eine Verbindung mit dem Database Engine (Datenbankmodul) her.
Klicken Sie in der Standardleiste auf Neue Abfrage.
Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen. In diesem Beispiel wird gezeigt, wie Sie sp_configure zum Festlegen der Option cursor threshold auf 0 verwenden, damit Cursor-Keysets asynchron generiert werden.
USE AdventureWorks2012 ;
GO
EXEC sp_configure 'show advanced options', 1 ;
GO
RECONFIGURE
GO
EXEC sp_configure 'cursor threshold', 0 ;
GO
RECONFIGURE
GO
Weitere Informationen finden Sie unter Serverkonfigurationsoptionen.
[Top]
Nachverfolgung: Nach dem Konfigurieren der Option Cursorschwellenwert
Die Einstellung tritt ohne Neustarten des Servers sofort in Kraft.
[Top]
Siehe auch
Verweis
UPDATE STATISTICS (Transact-SQL)