Freigeben über


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
  • Das Vergrößerungsinkrements von tempdb Dateien
  • Maximale tempdb Größe

tempdb Einstellungen bleiben erhalten, nachdem Ihre Instanz neu gestartet, aktualisiert wurde oder wenn ein Failover vorliegt.

Ü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 bei jedem Start der Serverinstanz neu erstellt 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 startet.

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. Es gibt nur einen tempdb für jede verwaltete Instanz. Auch wenn mehrere Datenbanken und Anwendungen eine Verbindung mit der Instanz herstellen, verwenden alle die gleiche tempdb Datenbank. Bei Diensten kann es zu Konflikten kommen, wenn sie versuchen, Seiten in einem stark verwendeten tempdb zuzuordnen. Abhängig vom Grad des Konflikts können Abfragen und Anforderungen, die tempdb betreffen, nicht mehr reagieren. Aus diesem Grund ist tempdb für die Leistung des Diensts von entscheidender Bedeutung.

Anzahl von tempdb Dateien

Wenn Sie die Anzahl der tempdb Datendateien erhöhen, werden eine oder mehrere GAM- und SGAM-Seiten für jede Datendatei erstellt, wodurch die tempdb Parallelität verbessert und PFC-Seitenkonflikte reduziert werden. Eine Erhöhung der Anzahl von 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 von tempdb Dateien zu ändern. Gehen Sie dazu folgendermaßen vor:

  1. Öffnen Sie SSMS, und stellen Sie eine Verbindung mit Ihrer verwalteten Instanz her.

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

  3. Klicken Sie mit der rechten Maustastetempdb auf die Datei, und wählen Sie Eigenschaften aus.

  4. Wählen Sie Dateien unter Seite auswählen, um die Anzahl der vorhandenen tempdb Dateien 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 der Datenbankeigenschaften in SSMS, wobei der Name der neuen Datenbankdatei hervorgehoben ist.

  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

tempdb Das Dateiwachstum kann sich auf die Leistung von Abfragen mit tempdb auswirken. tempdb Daher können zu kleine Vergrößerungsinkremente der Datendatei eine Fragmentierung des Umfangs verursachen, während zu große Inkremente zu langsamem Wachstum oder einem Wachstumsfehler führen können, wenn nicht genügend Platz für das Wachstum vorhanden ist. Der optimale Wert für tempdb Vergrößerungsinkremente der Datendatei hängt von Ihrer Workload ab.

Die 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. Öffnen Sie SSMS, und stellen Sie eine Verbindung mit Ihrer verwalteten Instanz her.

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

  3. Klicken Sie mit der rechten Maustastetempdb auf die Datei, und wählen Sie Eigenschaften aus.

  4. Wählen Sie Dateien unter Seite auswählen, um die Anzahl der vorhandenen tempdb Dateien 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 von Automatische Vergrößerung für tempdev in SSMS ändern, wobei der neue Dateiname der Datenbank hervorgehoben ist.

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

Maximale Größe

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

tempdb Der verwendete Speicherplatz ist die Summe des verwendeten Speicherplatzes aller tempdb Dateien. tempdb Der verwendete Dateispeicher entspricht dem Teil dieser tempdb Dateigröße, der mit Nicht-Null-Informationen belegt ist. Die Summe des tempdb verwendeten Speicherplatzes und tempdb freien Speicherplatzes entspricht der tempdb Größe.

Sie können T-SQL verwenden, um den aktuell verwendeten und freien Speicherplatz für Ihre tempdb Dateien zu bestimmen.

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

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 des Abfrageergebnisses in SSMS mit Anzeige des verwendeten und freien Speicherplatzes in der tempdb-Datendatei.

Um den verwendeten und den 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 des Abfrageergebnisses in SSMS mit Anzeige des verwendeten und freien Speicherplatzes in der tempdb-Datendatei.

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

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

  • In der Universellen Dienstebene ist die maximale Größe für auf tempdb 24 GB/virtueller Kern (96 bis 1920 GB) beschränkt, und die Protokolldatei beträgt 120 GB.
  • In der Unternehmenskritischen Dienstebene konkurriert tempdb mit anderen Datenbanken um Ressourcen, sodass der reservierte Speicher zwischen 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.

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

  1. Öffnen Sie SSMS, und stellen Sie eine Verbindung mit Ihrer verwalteten Instanz her.
  2. Erweitern Sie Datenbanken in Objekt-Explorer und dann Systemdatenbanken.
  3. Klicken Sie mit der rechten Maustastetempdb auf die Datei, 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 der Datenbankeigenschaften von tempdb, der die maximale tempdb-Größe in SSMS anzeigt.

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

  1. Öffnen Sie SSMS, und stellen Sie eine Verbindung mit Ihrer verwalteten Instanz her.
  2. Erweitern Sie Datenbanken in Objekt-Explorer und dann Systemdatenbanken.
  3. Klicken Sie mit der rechten Maustastetempdb auf die Datei, und wählen Sie Eigenschaften aus.
  4. Wählen Sie Dateien unter Seite auswählen, um die Anzahl der vorhandenen tempdb Dateien 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 des Dialogfelds Automatische Vergrößerung ändern in SSMS, wobei die maximale Dateigröße hervorgehoben ist.

tempdb-Grenzwerte

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

Konfigurationseinstellung Werte
Logische Namen von tempdb Dateien Maximal 16 Zeichen
Anzahl von tempdb Dateien Maximal 128 Dateien
Standardanzahl von tempdb Dateien 13 (1 Protokolldatei + 12 Datendateien)
Anfangsgröß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 maximale tempdbGröße -1 (unbegrenzt)
Max. Größe von tempdb Bis zur Speichergröße

Nächste Schritte