Teilen über


Serverkonfiguration: Kostenbeschränkung der Abfragekontrolle

Gilt für:SQL Server

In diesem Artikel wird beschrieben, wie die Serverkonfigurationsoption query governor cost limit in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL konfiguriert wird. Die Option zur Kostenbeschränkung legt eine Obergrenze für die geschätzten zulässigen Kosten für die Ausführung einer bestimmten Abfrage fest. Die Abfragekosten sind eine abstrakte Zahl, die vom Abfrageoptimierer basierend auf geschätzten Ausführungsanforderungen wie CPU-Zeit, Arbeitsspeichernutzung und Datenträger-E/A ermittelt wird. Sie beziehen sich auf eine geschätzte Zeit in Sekunden, die für das Ausführen einer Abfrage bei einer bestimmten Hardwarekonfiguration benötigt wird. Diese abstrakte Zahl entspricht nicht der Zeit, die für die vollständige Ausführung einer Abfrage auf der ausgeführten Instanz erforderlich ist. Sie sollte als relatives Measure behandelt werden. Der Standardwert für diese Option ist 0, mit dem die Abfragekontrolle deaktiviert wird. Durch Festlegen des Werts auf 0 können alle Abfragen ohne zeitliche Begrenzung ausgeführt werden. Wenn Sie einen nicht negativen Wert ungleich Null angeben, lässt die Abfragekontrolle die Ausführung von Abfragen nicht zu, deren geschätzte Kosten über diesem Wert liegen.

Empfehlungen

Diese Option ist eine erweiterte Option und sollte nur von einem erfahrenen Datenbankexperten geändert werden.

Wenn Sie den Wert der Option Kostenbeschränkung der Abfragekontrolle jeweils für eine Verbindung ändern möchten, können Sie dazu die SET QUERY_GOVERNOR_COST_LIMIT -Anweisung verwenden.

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

  1. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf einen Server, und wählen Sie Eigenschaften aus.

  2. Wählen Sie die Seite Verbindungen aus.

  3. Aktivieren bzw. deaktivieren Sie das Kontrollkästchen Abfragekontrolle verwenden, um Abfragen mit langer Ausführungszeit zu verhindern .

    Wenn Sie dieses Kontrollkästchen aktivieren, geben Sie im Feld unten einen positiven Wert ein. Dieser wird von der Abfragekontrolle verwendet, um das Ausführen von Abfragen zu verhindern, deren geschätzte Kosten diesen Wert überschreiten.

Verwenden von Transact-SQL

  1. Stellen Sie eine Verbindung mit dem Datenbank-Engineher.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie das folgende Beispiel in das Abfragefenster, und klicken Sie dann auf Ausführen. Dieses Beispiel zeigt, wie sp_configure verwendet wird, um den Wert der Option query governor cost limit auf eine Obergrenze von 120 für die geschätzten Abfragekosten festzulegen.

    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'query governor cost limit', 120;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'show advanced options', 0;
    GO
    
    RECONFIGURE;
    GO
    

Weitere Informationen finden Sie unter Serverkonfigurationsoptionen.

Nachverfolgung: Nach dem Konfigurieren der Option für die Kostenbeschränkung der Abfragekontrolle

Die Einstellung tritt ohne Neustarten des Servers sofort in Kraft.