Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Workloadverwaltungsfunktionen von SQL Server PDW ermöglichen Benutzern und Administratoren das Zuweisen von Anforderungen an vorab festgelegte Speicherkonfigurationen und Parallelität. Nutzen Sie das Workload-Management, um die Leistung Ihrer Workload, unabhängig davon, ob sie konsistent oder gemischt ist, zu verbessern, indem Anfragen die entsprechenden Ressourcen zur Verfügung gestellt werden, ohne dass irgendeine Anfrage dauerhaft leer ausgeht.
Mit den Workload-Verwaltungstechniken in SQL Server PDW können Sie z. B. folgende Aktionen ausführen:
Weisen Sie einem Ladeauftrag eine große Anzahl von Ressourcen zu.
Geben Sie weitere Ressourcen zum Erstellen eines Columnstore-Index an.
Problembehandlung bei einer langsamen Hashverknüpfung, um festzustellen, ob mehr Arbeitsspeicher benötigt wird, und anschließend mehr Arbeitsspeicher zuzuweisen.
Grundlagen des Workload-Managements
Schlüsselbegriffe
Workloadverwaltung
Workload Management ist die Möglichkeit, die Systemressourcenauslastung zu verstehen und anzupassen, um die beste Leistung für gleichzeitige Anforderungen zu erzielen.
Ressourcenklasse
In SQL Server PDW ist eine Ressourcenklasse eine integrierte Serverrolle, die bereits zugewiesene Grenzwerte für Arbeitsspeicher und Parallelität aufweist. SQL Server PDW weist Ressourcen Anfragen gemäß der Mitgliedschaft in der Ressourcenklassen-Serverrolle der Anmeldung zu, die die Anfragen einreicht.
Auf den Computeknoten verwendet die Implementierung von Ressourcenklassen die Funktion "Resource Governor" in SQL Server. Weitere Informationen zum Resource Governor finden Sie unter Resource Governor auf MSDN.
Verstehen der aktuellen Ressourcenauslastung
Verwenden Sie die dynamischen SQL Server PDW-Verwaltungsansichten, um die Systemressourcenauslastung für die derzeit ausgeführten Anforderungen zu verstehen. Sie können beispielsweise DMVs verwenden, um herauszufinden, ob eine langsam laufende große Hash-Verknüpfung von mehr Arbeitsspeicher profitieren kann.
Anpassen von Ressourcenzuordnungen
Um die Ressourcenauslastung anzupassen, ändern Sie die Ressourcengruppenmitgliedschaft der Anmeldung, die die Anforderung übermittelt. Die Serverrollen der Ressourcenklasse heißen mediumrc, largercund xlargerc. Sie stellen mittelgroße, große und extragroße Ressourcenzuordnungen dar.
Um beispielsweise eine große Menge an Systemressourcen einer Anforderung zuzuweisen, fügen Sie den Login hinzu, der die Anforderung an die größere Serverrolle übermittelt. Die folgende ALTER SERVER ROLE-Anweisung fügt die Anmeldung Anna zur größeren Serverrolle hinzu.
ALTER SERVER ROLE largerc ADD MEMBER Anna;
Ressourcenklassenbeschreibungen
In der folgenden Tabelle werden die Ressourcenklassen und ihre Systemressourcenzuordnungen beschrieben.
| Ressourcenklasse | Wichtigkeit der Anforderung | Maximale Speicherauslastung* | Gleichzeitigkeits-Slots (Maximum = 32) | BESCHREIBUNG |
|---|---|---|---|---|
| default | Medium | 400 MB | 1 | Standardmäßig ist bei jeder Anmeldung eine kleine Menge Arbeitsspeicher und Ressourcen für parallele Ausführungen für ihre Anforderungen zugelassen. Wenn einer Ressourcenklasse eine Anmeldung hinzugefügt wird, hat die neue Klasse Vorrang. Wenn eine Anmeldung von allen Ressourcenklassen gelöscht wird, wird die Anmeldung wieder auf die Standardressourcenzuordnung zurückgesetzt. |
| MediumRC | Medium | 1200 MB | 3 | Beispiele für Anforderungen, die möglicherweise die mittlere Ressourcenklasse benötigen: CTAS-Vorgänge mit großen Hash-Verknüpfungen. SELECT-Vorgänge, die mehr Arbeitsspeicher benötigen, um das Zwischenspeichern auf der Festplatte zu vermeiden. Laden von Daten in gruppierte Spaltenspeicherindizes. Erstellen, Neuerstellen und Neuorganisieren von gruppierten Spaltenspeicherindizes für kleinere Tabellen mit 10 bis 15 Spalten. |
| Largerc | High | 2,8 GB | 7 | Beispiele für Anforderungen, die möglicherweise die große Ressourcenklasse erfordern: Sehr große CTAS-Vorgänge mit großen Hash-Joins oder großen Aggregationen, wie zum Beispiel große ORDER BY- oder GROUP BY-Klauseln. SELECT-Vorgänge, die sehr große Speichermengen für Vorgänge wie Hash-Verknüpfungen oder Aggregationen wie ORDER BY- oder GROUP BY-Klauseln erfordern Laden von Daten in gruppierte Spaltenspeicherindizes. Erstellen, Neuerstellen und Neuorganisieren von gruppierten Spaltenspeicherindizes für kleinere Tabellen mit 10 bis 15 Spalten. |
| xlargerc | High | 8,4 GB | 22 | Die zusätzliche große Ressourcenklasse ist für Anforderungen vorgesehen, die zur Laufzeit einen zusätzlichen großen Ressourcenverbrauch erfordern könnten. |
*Maximale Speicherauslastung ist eine Annäherung.
Wichtigkeit der Anforderung
Die Wichtigkeit der Anforderung entspricht der Menge an CPU-Zeit, die SQL Server den Anfragen gibt, während es auf den Computeknoten läuft. Anforderungen mit höherer Priorität erhalten mehr CPU-Zeit.
Maximale Speicherauslastung
Die maximale Speicherauslastung ist die maximale Menge des verfügbaren Arbeitsspeichers, den eine Anforderung innerhalb jedes Verarbeitungsspeichers verwenden kann. Eine mediumrc-Anforderung kann z. B. bis zu 1200 MB für die Verarbeitung innerhalb jeder Verteilung verwenden. Es ist weiterhin wichtig sicherzustellen, dass die Daten nicht verzerrt sind, um zu vermeiden, dass einige Distributionen den Großteil der Arbeit ausführen.
Parallelitätsslots
Das Ziel der Zuweisung von 1, 3, 7 und 22 Parallelitäts-Slots besteht darin, die gleichzeitige Ausführung sowohl großer als auch kleiner Prozesse zu ermöglichen, ohne dass ein kleiner Prozess blockiert wird, wenn ein großer Prozess läuft. Beispielsweise kann SQL Server PDW maximal 32 Parallelitätsplätze zuweisen, um 1 zusätzliche große Anforderung (22 Steckplätze), 1 große Anforderung (7 Steckplätze) und 1 mittlere Anforderung (3 Steckplätze) gleichzeitig auszuführen.
Beispiele für die Zuordnung von bis zu 32 Plätzen für parallele Verarbeitung für gleichzeitige Anfragen:
28 Steckplätze = 4 groß
30 Steckplätze = 10 mittlere
32 Slots = 32 Standardeinstellung
32 Steckplätze = 1 extra groß + 1 groß + 1 mittel
32 Steckplätze = 2 groß + 4 mittel + 6 Standard
Angenommen, 6 große Anforderungen werden an SQL Server PDW übermittelt, und dann werden 10 Standardanforderungen übermittelt. SQL Server PDW verarbeitet die Anforderungen wie folgt in der Prioritätsreihenfolge:
Weisen Sie 28 gleichzeitige Slots zu, um mit der Verarbeitung von vier großen Anforderungen zu beginnen, sobald der Arbeitsspeicher verfügbar ist, und halten Sie 2 große Anforderungen in der Warteschlange.
Weisen Sie vier Parallelitätsplätze zu, um mit der Verarbeitung von 4 Standardanforderungen zu beginnen, und behalten Sie 6 Standardanforderungen in der Warteschlange.
Wenn Anforderungen fertig gestellt werden und Parallelitätsplätze verfügbar werden, werden die verbleibenden Anforderungen gemäß verfügbaren Ressourcen und Priorität von SQL Server PDW zugewiesen. Wenn beispielsweise 7 Verbindungsslots geöffnet sind, haben große Anfragen für die 7 Slots eine höhere Priorität als mittlere Anfragen. Wenn 6 Slots frei sind, ordnet SQL Server PDW 6 weitere Standardanforderungen zu. Speicher- und Parallelitätsplätze müssen jedoch alle verfügbar sein, bevor SQL Server PDW die Ausführung einer Anforderung zulässt.
Innerhalb jeder Ressourcenklasse werden die Anfragen in der Reihenfolge "First In, First Out" (FiFO) ausgeführt.
Allgemeine Hinweise
Wenn eine Anmeldung Mitglied mehrerer Ressourcenklassen ist, hat die Klasse mit den meisten Ressourcen Vorrang.
Wenn eine Anmeldung einer Ressourcenklasse hinzugefügt oder gelöscht wird, wird die Änderung sofort für alle zukünftigen Anforderungen wirksam; Aktuelle Anforderungen, die ausgeführt oder gewartet werden, sind nicht betroffen. Der Login muss nicht getrennt und wieder verbunden werden, damit die Änderung wirksam wird.
Bei jeder Anmeldung werden die Ressourcenklasseneinstellungen auf einzelne Befehle und Vorgänge und nicht auf die Sitzung angewendet.
Bevor SQL Server PDW eine Anweisung ausführt, versucht sie, die für die Anforderung erforderlichen Parallelitätsplätze zu erwerben. Wenn SQL Server PDW nicht genügend Parallelitätsplätze bereitstellen kann, wird die Anforderung in einen wartenden-to-be-ausgeführten Zustand verschoben. Alle Ressourcensysteme, die der Anforderung bereits zugeordnet wurden, werden zurück an das System zurückgegeben.
Die meisten SQL-Anweisungen benötigen immer die Standardressourcenzuordnungen und werden daher nicht von Ressourcenklassen gesteuert. CREATE LOGIN benötigt beispielsweise nur eine kleine Menge Ressourcen und wird den Standardressourcen zugewiesen, selbst wenn das Login, das CREATE LOGIN aufruft, ein Mitglied einer Ressourcenklasse ist. Wenn Anna beispielsweise Mitglied der largerc-Ressourcenklasse ist und eine CREATE LOGIN-Anweisung sendet, wird die CREATE LOGIN-Anweisung mit der Standardanzahl von Ressourcen ausgeführt.
SQL-Anweisungen und -Vorgänge, die von Ressourcenklassen gesteuert werden:
ALTER INDEX REBUILD
ALTERIERE INDEX REORGANISIEREN
TABELLE NEU AUFBAUEN
GRUPPIERTEN INDEX ERSTELLEN
CLUSTERED COLUMNSTORE INDEX ERSTELLEN
TABELLE ALS AUSWAHL ERSTELLEN
REMOTE-TABELLE MIT SELECT ERSTELLEN
Laden von Daten mit dwloader.
INSERT-SELECT
UPDATE
Delete
DATENBANK WIEDERHERSTELLEN beim Wiederherstellen in ein Gerät mit mehr Computenodes.
SELECT, mit Ausnahme von NUR-DMV-Abfragen
Einschränkungen und Beschränkungen
Die Ressourcenklassen steuern Speicher- und Parallelitätszuordnungen. Sie regeln keine Eingabe-/Ausgabevorgänge.
Metadaten
DMVs, die Informationen zu Ressourcenklassen und Ressourcenklassenmitgliedern enthalten.
DMVs, die Informationen zum Status von Anforderungen und den erforderlichen Ressourcen enthalten:
Verwandte Systemansichten, die aus den SQL Server-DMVs auf den Rechenknoten offengelegt werden. Siehe SQL Server-Dynamische Verwaltungsansichten für Links zu diesen DMVs auf MSDN.
sys.dm_pdw_nodes_resource_governor_resource_pools
sys.dm_pdw_nodes_resource_governor_workload_groups
sys.dm_pdw_nodes_resource_governor_resource_pools
sys.dm_pdw_nodws_resource_governor_workload_groups
sys.dm_pdw_nodes_exec_sessions
sys.dm_pdw_nodes_exec_requests
sys.dm_pdw_nodes_exec_query_memory_grants
sys.dm_pdw_nodes_exec_query_resource_semaphores
sys.dm_pdw_nodes_os_memory_brokers
sys.dm_pdw_nodes_os_memory_cache_entries
sys.dm_pdw_nodes_exec_cached_plans