Konfigurieren von tempdb-Einstellungen für Azure SQL Managed Instance

Gilt für:Azure SQL Managed Instance

In diesem Artikel erfahren Sie, wie Sie Ihre tempdb-Einstellungen für Azure SQL Managed Instance konfigurieren.

Mit Azure SQL Managed Instance können Sie Folgendes konfigurieren:

  • Anzahl von tempdb Dateien
  • Vergrößerungsinkrement der tempdb Dateien
  • Maximale tempdb Größe

tempdb-Einstellungen bleiben auch nach einem Neustart, einer Aktualisierung oder einem Failover Ihrer Instanz erhalten.

Übersicht

tempdb ist eine der Standardsystemdatenbanken, die Azure SQL Managed Instance enthalten. Die Struktur von tempdb ist identisch mit jeder anderen Benutzerdatenbankstruktur. Der Unterschied besteht darin, dass Transaktionen minimal protokolliert werden, da tempdb für nicht dauerhafte Speicher verwendet werden.

tempdb kann nicht gelöscht, getrennt, offline genommen, umbenannt oder wiederhergestellt werden. Der Versuch, einen dieser Vorgänge durchzuführen, gibt einen Fehler zurück. tempdb wird jedes Mal neu erstellt, wenn die Serverinstanz gestartet wird, und alle Objekte, die in einer vorherigen Sitzung in tempdb erstellt wurden, bleiben nicht erhalten, wenn der Dienst nach einer Instanzaktualisierung oder einem Failover neu gestartet wird.

Der Workload in tempdb unterscheidet sich von Workloads in anderen Benutzerdatenbanken. Objekte und Daten werden häufig erstellt und zerstört, und es besteht eine extrem hohe Parallelität. Für jede verwaltete Instanz gibt es nur eine tempdb. Auch wenn mehrere Datenbanken und Anwendungen eine Verbindung mit der Instanz herstellen, verwenden sie alle die gleiche tempdb-Datenbank. Bei Diensten kann es zu Konflikten kommen, wenn sie versuchen, Seiten in einer stark genutzten tempdb zuzuordnen. Je nach Grad des Konflikts können Abfragen und Anfragen, die tempdb betreffen, nicht mehr beantwortet werden. Aus diesem Grund ist tempdb entscheidend für die Leistung der Dienste.

Anzahl von tempdb Dateien

Wenn Sie die Anzahl der tempdb Datendateien erhöhen, werden für jede Datendatei eine oder mehrere GAM- und SGAM-Seiten erstellt, wodurch die tempdb Parallelität der tempdb verbessert und PFC-Seitenkonflikte verringert werden. Die Erhöhung der Anzahl der tempdb Datendateien kann jedoch andere Auswirkungen auf die Leistung haben, daher sollten Sie vor der Implementierung in der Produktion gründlich testen.

Standardmäßig erstellt Azure SQL Managed Instance 12 tempdb Datendateien und 1 tempdb Protokolldatei, aber es ist möglich, diese Konfiguration zu ändern.

Das Ändern der Anzahl von tempdb Dateien hat die folgenden Einschränkungen:

  • Beim logischen Namen der neuen Datei wird nicht zwischen Groß- und Kleinschreibung unterschieden. Er darf maximal 16 Zeichen lang sein und keine Leerzeichen enthalten.
  • Die maximale Anzahl von tempdb Dateien ist 128.

Hinweis

Sie müssen den Server nach dem Hinzufügen neuer Dateien nicht neu starten. Die leeren Dateien werden jedoch mit höherer Priorität gefüllt, und der Roundrobin-Algorithmus für die Zuordnung von Seiten geht verloren, bis das System neu ausgeglichen wird.

Sie können sowohl SQL Server Management Studio (SSMS) als auch Transact-SQL (T-SQL) verwenden, um die Anzahl von Dateien für tempdb in Azure SQL Managed Instance zu ändern.

Sie können SQL Server Management Studio (SSMS) verwenden, um die Anzahl der tempdb Dateien zu ändern. Gehen Sie dazu folgendermaßen vor:

  1. Stellen Sie in SSMS eine Verbindung zu Ihrer verwalteten Instanz her.

  2. Erweitern Sie Datenbanken in Objekt-Explorer und dann Systemdatenbanken.

  3. Klicken Sie mit der rechten Maustaste auf tempdb, und wählen Sie Eigenschaften aus.

  4. Wählen Sie Dateien unter Seite auswählen, um die Anzahl der vorhandenen tempdbDateien anzuzeigen.

  5. Um eine Datei hinzuzufügen, wählen Sie Hinzufügen aus, und geben Sie dann Informationen zur neuen Datendatei in der Zeile an.

    Screenshot of Database Properties in SSMS, with new database file name highlighted.

  6. Um eine tempdb Datei zu entfernen, wählen Sie die Datei aus, die Sie aus der Liste der Datenbankdateien entfernen möchten, und wählen Sie dann Entfernen aus.

Vergrößerungsinkrement

Das Wachstum der tempdb-Datei kann sich auf die Leistung von Abfragen mit tempdb auswirken. So können zu kleine Vergrößerungsinkremente für tempdb Datendateien zu einer Fragmentierung des Umfangs führen, während zu große Inkremente ein langsames Wachstum oder einen Wachstumsausfall zur Folge haben können, wenn nicht genügend Platz für das Wachstum vorhanden ist. Der optimale Wert für Vergrößerungsinkremente der tempdb Datendatei hängt von Ihrer Workload ab.

Die standardmäßigen Vergrößerungsinkremente für SQL Managed Instance sind 254 MB für tempdb Datendateien und 64 MB für tempdb Protokolldateien. Sie können jedoch Vergrößerungsinkremente konfigurieren, um sich an Ihre Workload anzupassen und Ihre Leistung zu optimieren.

Beachten Sie Folgendes:

  • Der Dateiwachstumsparameter unterstützt die folgenden Einheiten für int_growth_increment KB, MB, GB, TB und %.
  • Vergrößerungsinkremente sollten für alle tempdb Datendateien gleich sein, da andernfalls der Roundrobin-Algorithmus, der Seiten zuordnet, beeinträchtigt werden kann.

Sie können sowohl SQL Server Management Studio (SSMS) als auch Transact-SQL (T-SQL) verwenden, um das Vergrößerungsinkrement für Ihre tempdb Dateien zu ändern.

Sie können SQL Server Management Studio (SSMS) verwenden, um das Vergrößerungsinkrement von tempdb Dateien zu ändern. Gehen Sie dazu folgendermaßen vor:

  1. Stellen Sie in SSMS eine Verbindung zu Ihrer verwalteten Instanz her.

  2. Erweitern Sie Datenbanken in Objekt-Explorer und dann Systemdatenbanken.

  3. Klicken Sie mit der rechten Maustaste auf tempdb, und wählen Sie Eigenschaften aus.

  4. Wählen Sie Dateien unter Seite auswählen, um die Anzahl der vorhandenen tempdbDateien anzuzeigen.

  5. Wählen Sie die Auslassungspunkte (...) neben einer Datendatei aus, um das Dialogfeld Eigenschaften der automatischen Vergrößerung ändern zu öffnen.

  6. Aktivieren Sie das Kontrollkästchen Automatische Vergrößerung aktivieren und ändern Sie dann Ihre Einstellungen für die automatische Vergrößerung, indem Sie die Dateiwachstumswerte entweder in Prozent oder Megabyte angeben.

    Screenshot of Change Autogrowth for tempdev in SSMS, with new database file name highlighted.

  7. Klicken Sie auf OK, um die Einstellungen zu speichern.

Maximale Größe

tempdb-Größe ist die Summengröße aller tempdb Dateien. tempdb Dateigröße ist ein zugewiesener (auf Null gesetzter) Speicherplatz für diese tempdb Datei. Die anfängliche Dateigröße für alle tempdb Dateien beträgt 16 MB. Dies ist die Größe aller tempdbDateien, wenn die Instanz neu gestartet wird oder ein Failover durchgeführt wird. Sobald der belegte Speicherplatz einer tempdb Datendatei die Dateigröße erreicht, wachsen alle tempdb Datendateien automatisch um die konfigurierten Vergrößerungsinkremente.

Dertempdb belegte Speicherplatz ist die Summe des belegten Speicherplatzes aller tempdbDateien. Der belegte Speicherplatz einer tempdb-Datei ist gleich dem Teil der tempdb-Dateigröße, der mit Informationen ungleich Null belegt ist. Die Summe aus tempdbbelegtem Speicherplatz und tempdbfreiem Speicherplatz entspricht der tempdb Größe.

Sie können T-SQL verwenden, um den aktuellen belegten und freien Speicherplatz für Ihre tempdb Dateien zu ermitteln.

Führen Sie diesen Befehl aus, um den belegten Speicherplatz, den freien Speicherplatz und die Größe Ihrer tempdb Datendateien zu ermitteln:

USE tempdb
SELECT SUM((allocated_extent_page_count)*1.0/128) AS TempDB_used_data_space_inMB, 
	SUM((unallocated_extent_page_count)*1.0/128) AS TempDB_free_data_space_inMB, 
	SUM(total_page_count*1.0/128) AS TempDB_data_size_inMB 
FROM sys.dm_db_file_space_usage

Der folgende Screenshot zeigt eine Beispielausgabe:

Screenshot of the query result in SSMS showing used and free space in the tempdb data file.

Um den belegten und freien Speicherplatz sowie die Größe Ihrer tempdb Protokolldateien zu ermitteln, führen Sie diesen Befehl aus:

USE tempdb
SELECT used_log_space_in_bytes*1.0/1024/1024 AS TempDB_used_log_space_inMB,
     (total_log_size_in_bytes- used_log_space_in_bytes)*1.0/1024/1024 AS TempDB_free_log_space_inMB,
     total_log_size_in_bytes*1.0/1024/1024 AS TempDB_log_size_inMB
FROM sys.dm_db_log_space_usage

Der folgende Screenshot zeigt eine Beispielausgabe:

Screenshot of the query result in SSMS showing used and free space in the tempdb log file.

Die maximale tempdb Größe ist die Grenze, ab der Sie tempdb nicht mehr vergrößern können.

Die maximale tempdb Größe in SQL Managed Instance weist die folgenden Begrenzungen auf:

  • Auf der Dienstebene „Universell“ beträgt die maximale Größe für tempdb 24 GB/virtueller Kern (96 bis 1920 GB) und für die Protokolldatei 120 GB.
  • Auf der Dienstebene „Unternehmenskritisch“ konkurriert tempdb mit anderen Datenbanken um Ressourcen, sodass der reservierte Speicher von tempdb und anderen Datenbanken gemeinsam genutzt wird. Die maximale Größe der tempdb Protokolldatei beträgt 2 TB.

tempdb-Dateien werden vergrößert, bis sie entweder das von der Dienstebene zulässige maximale Limit oder die manuell konfigurierte maximale tempdb Dateigröße erreichen.

Sie können sowohl SQL Server Management Studio (SSMS) als auch Transact-SQL (T-SQL) verwenden, um die maximale Größe für Ihre tempdb Dateien zu ändern.

Führen Sie die folgenden Schritte aus, um ihre aktuelle maximale tempdb Größe in SSMS zu ermitteln:

  1. Stellen Sie in SSMS eine Verbindung zu Ihrer verwalteten Instanz her.
  2. Erweitern Sie Datenbanken in Objekt-Explorer und dann Systemdatenbanken.
  3. Klicken Sie mit der rechten Maustaste auf tempdb, und wählen Sie Eigenschaften aus.
  4. Überprüfen Sie auf der Seite „Allgemein“ den Wert Größe unter Datenbank, um Ihre maximale tempdb-Größe zu bestimmen. Ein Wert von -1 bedeutet, dass die maximale tempdb-Größe unbegrenzt ist.

Screenshot of tempdb database properties showing the max size for tempdb in SSMS.

Um Ihre aktuelle tempdb Maximalgröße in SSMS zu ändern, gehen Sie wie folgt vor:

  1. Stellen Sie in SSMS eine Verbindung zu Ihrer verwalteten Instanz her.
  2. Erweitern Sie Datenbanken in Objekt-Explorer und dann Systemdatenbanken.
  3. Klicken Sie mit der rechten Maustaste auf tempdb, und wählen Sie Eigenschaften aus.
  4. Wählen Sie Dateien unter Seite auswählen, um die Anzahl der vorhandenen tempdbDateien anzuzeigen.
  5. Wählen Sie die Auslassungspunkte (...) neben einer Datendatei aus, um das Dialogfeld Eigenschaften der automatischen Vergrößerung ändern zu öffnen.
  6. Ändern Sie die Einstellungen für die tempdb maximale Größe, indem Sie die Werte unter Maximale Dateigröße ändern.
  7. Klicken Sie auf OK, um die Einstellungen zu speichern.

Screenshot of the change autogrowth dialog box in SSMS, with maximum file size highlighted.

tempdb-Grenzwerte

In der folgenden Tabelle werden Grenzwerte für verschiedene tempdb Konfigurationseinstellungen definiert:

Konfigurationseinstellung Werte
Logische Namen von tempdb Dateien Maximale Länge 16 Zeichen
Anzahl von tempdb Dateien Maximal 128 Dateien
Standardanzahl von tempdb Dateien 13 (1 Protokolldatei + 12 Datendateien)
Anfängliche Größe von tempdb Datendateien 16 MB
Standardvergrößerungsinkrement von tempdb Datendateien 256 MB
Anfangsgröße von tempdb Protokolldateien 16 MB
Standardvergrößerungsinkrement von tempdb Protokolldateien 64 MB
Anfängliche maximaletempdb Größe -1 (unbegrenzt)
Maximale Größe von tempdb Bis zur Speichergröße

Nächste Schritte