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:
Öffnen Sie SSMS, und stellen Sie eine Verbindung mit Ihrer verwalteten Instanz her.
Erweitern Sie Datenbanken in Objekt-Explorer und dann Systemdatenbanken.
Klicken Sie mit der rechten Maustaste
tempdb
auf die Datei, und wählen Sie Eigenschaften aus.Wählen Sie Dateien unter Seite auswählen, um die Anzahl der vorhandenen
tempdb
Dateien anzuzeigen.Um eine Datei hinzuzufügen, wählen Sie Hinzufügen aus, und geben Sie dann Informationen zur neuen Datendatei in der Zeile an.
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:
Öffnen Sie SSMS, und stellen Sie eine Verbindung mit Ihrer verwalteten Instanz her.
Erweitern Sie Datenbanken in Objekt-Explorer und dann Systemdatenbanken.
Klicken Sie mit der rechten Maustaste
tempdb
auf die Datei, und wählen Sie Eigenschaften aus.Wählen Sie Dateien unter Seite auswählen, um die Anzahl der vorhandenen
tempdb
Dateien anzuzeigen.Wählen Sie die Auslassungspunkte (...) neben einer Datendatei aus, um das Dialogfeld Eigenschaften der automatischen Vergrößerung ändern zu öffnen.
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.
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:
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:
tempdb
Die maximale Größe ist die Begrenzung, nach der Sie tempdb
nicht mehr vergrößern können.
tempdb
Die 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 zwischentempdb
und anderen Datenbanken gemeinsam genutzt wird. Die maximale Größe dertempdb
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:
- Öffnen Sie SSMS, und stellen Sie eine Verbindung mit Ihrer verwalteten Instanz her.
- Erweitern Sie Datenbanken in Objekt-Explorer und dann Systemdatenbanken.
- Klicken Sie mit der rechten Maustaste
tempdb
auf die Datei, und wählen Sie Eigenschaften aus. - Ü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.
Um Ihre aktuelle tempdb
Maximalgröße in SSMS zu ändern, gehen Sie wie folgt vor:
- Öffnen Sie SSMS, und stellen Sie eine Verbindung mit Ihrer verwalteten Instanz her.
- Erweitern Sie Datenbanken in Objekt-Explorer und dann Systemdatenbanken.
- Klicken Sie mit der rechten Maustaste
tempdb
auf die Datei, und wählen Sie Eigenschaften aus. - Wählen Sie Dateien unter Seite auswählen, um die Anzahl der vorhandenen
tempdb
Dateien anzuzeigen. - Wählen Sie die Auslassungspunkte (...) neben einer Datendatei aus, um das Dialogfeld Eigenschaften der automatischen Vergrößerung ändern zu öffnen.
- Ändern Sie die Einstellungen für die
tempdb
maximale Größe, indem Sie die Werte unter Maximale Dateigröße ändern. - Klicken Sie auf OK, um die Einstellungen zu speichern.
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 tempdb Größe |
-1 (unbegrenzt) |
Max. Größe von tempdb |
Bis zur Speichergröße |
Nächste Schritte
- Im Schnellstarthandbuch erfahren Sie, wie Sie Ihre erste verwaltete Instanz erstellen.
- Eine Liste der Features und einen Funktionsvergleich finden Sie unter Allgemeine SQL-Features.
- Weitere Informationen zur VNET-Konfiguration finden Sie unter Konfigurieren eines VNET für SQL Managed Instance.
- Eine Schnellstartanleitung, in der eine verwaltete Instanz erstellt und eine Datenbank aus einer Sicherungsdatei wiederhergestellt wird, finden Sie unter Erstellen einer verwalteten Azure SQL-Datenbank-Instanz.
- Ein Tutorial zur Verwendung des Azure Database Migration Service für die Migration finden Sie unter SQL Managed Instance-Migration mithilfe des Database Migration Service.
- Weitere Informationen zur erweiterten Überwachung von SQL Managed Instance finden Sie unter Datenbank-Watcher.
- Preisinformationen finden Sie unter Preise für SQL-Datenbank.