Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten dokument zawiera zalecenia dotyczące wybierania idealnej liczby jednostek magazynu danych (DWU) dla dedykowanej puli SQL (dawniej SQL DW), aby zoptymalizować cenę i wydajność oraz jak zmienić liczbę jednostek.
Co to są jednostki magazynu danych
Dedykowana pula SQL (dawniej SQL DW) reprezentuje kolekcję aprowizowanych zasobów analitycznych. Zasoby analityczne są definiowane jako kombinacja CPU, pamięci i wejścia/wyjścia.
Te trzy zasoby są połączone w jednostki skali obliczeniowej o nazwie Jednostki magazynu danych (DWU). DWU reprezentuje abstrakcyjną, znormalizowaną miarę zasobów obliczeniowych i wydajności.
Zmiana poziomu usługi zmienia liczbę jednostek DWU, które są dostępne dla systemu, co z kolei dostosowuje wydajność i koszt systemu.
W celu zwiększenia wydajności można zwiększyć liczbę jednostek magazynu danych. Aby uzyskać mniejszą wydajność, zmniejsz liczbę jednostek magazynu danych. Opłaty za magazyn i obliczenia są rozliczane oddzielnie, dlatego zmiana jednostek magazynu danych nie ma wpływu na koszty magazynu.
Wydajność jednostek magazynu danych jest oparta na następujących metrykach obciążenia magazynu danych:
- Jak szybko standardowe zapytanie dedykowanej puli SQL (dawniej SQL DW) może skanować dużą liczbę wierszy, a następnie wykonywać złożone agregacje. Ta operacja wymaga dużej ilości operacji we/wy i procesora CPU.
- Jak szybko dedykowana pula SQL (dawniej SQL DW) może pozyskiwać dane z Azure Storage Blob lub Azure Data Lake. Ta operacja jest intensywnie obciążana przez sieć i procesor CPU.
- Jak szybko
CREATE TABLE AS SELECT
polecenie T-SQL może skopiować tabelę. Ta operacja obejmuje odczytywanie danych z pamięci masowej, ich dystrybucję między węzły urządzenia, a następnie ponowne zapisywanie w pamięci masowej. This operation is CPU, IO, and network intensive.
Increasing DWUs:
- Linearly changes performance of the system for scans, aggregations, and CTAS statements
- Increases the number of readers and writers for PolyBase load operations
- Increases the maximum number of concurrent queries and concurrency slots
Cel poziomu usług
Cel poziomu usług (SLO) to ustawienie skalowalności, które określa koszt i poziom wydajności dedykowanej puli SQL (dawniej SQL DW). Poziomy usług dla dedykowanej puli SQL Gen2 (dawniej SQL DW) są mierzone w jednostkach magazynu danych (DWU), na przykład DW2000c.
Uwaga
Dedicated SQL pool (formerly SQL DW) Gen2 recently added additional scale capabilities to support compute tiers as low as DW100c. Istniejące magazyny danych obecnie w usłudze Gen1, które wymagają niższych warstw obliczeniowych, mogą teraz przejść do wersji Gen2 w regionach, które są obecnie dostępne bez dodatkowych kosztów. Jeśli region nie jest jeszcze obsługiwany, nadal możesz uaktualnić go do obsługiwanego regionu. Aby uzyskać więcej informacji, zobacz Uaktualnianie do wersji Gen2.
W języku T-SQL ustawienie SERVICE_OBJECTIVE określa poziom usługi i warstwę wydajności dedykowanej puli SQL (dawniej SQL DW).
CREATE DATABASE mySQLDW
(Edition = 'Datawarehouse'
,SERVICE_OBJECTIVE = 'DW1000c'
)
;
Performance Tiers and Data Warehouse Units
Każda warstwa wydajności używa nieco innej jednostki miary dla jednostek magazynu danych. Ta różnica jest odzwierciedlana na fakturze, ponieważ jednostka skalowania bezpośrednio przekłada się na rozliczenia.
- Magazyny danych Gen1 są mierzone w jednostkach magazynu danych (DWU).
- Gen2 data warehouses are measured in compute Data Warehouse Units (cDWUs).
Zarówno DWU, jak i cDWU obsługują skalowanie zasobów obliczeniowych w górę lub w dół oraz wstrzymanie zasobów obliczeniowych, gdy nie ma potrzeby korzystania z magazynu danych. Te operacje są wykonywane na żądanie. Usługa Gen2 używa lokalnej pamięci podręcznej opartej na dysku na węzłach obliczeniowych, aby zwiększyć wydajność. Podczas skalowania lub wstrzymywania systemu pamięć podręczna jest unieważniana, dlatego przed osiągnięciem optymalnej wydajności wymagany jest okres rozgrzewania pamięci podręcznej.
Limity pojemności
Każdy serwer SQL (na przykład myserver.database.windows.net) ma limit przydziału jednostki transakcji bazy danych (DTU), który umożliwia określoną liczbę jednostek magazynu danych. Aby uzyskać więcej informacji, zobacz Limity wydajności zarządzania obciążeniami.
Ile jednostek magazynu danych potrzebuję
Idealna liczba jednostek magazynu danych zależy bardzo od obciążenia i ilości danych załadowanych do systemu.
Steps for finding the best DWU for your workload:
Zacznij od wybrania mniejszej jednostki DWU.
Monitoruj wydajność aplikacji podczas testowania ładowania danych do systemu, obserwując liczbę wybranych jednostek DWU w porównaniu z obserwowaną wydajnością. Zweryfikuj, monitorując wykorzystanie zasobów.
Zidentyfikuj wszelkie dodatkowe wymagania dotyczące okresowych okresów szczytowej aktywności. Workloads that show significant peaks and troughs in activity may need to be scaled frequently.
Dedicated SQL pool (formerly SQL DW) is a scale-out system that can provision vast amounts of compute and query sizeable quantities of data.
Aby zobaczyć prawdziwe możliwości skalowania, szczególnie w przypadku większych jednostek DWU, zalecamy rozszerzanie zestawu danych równolegle z procesem skalowania, aby upewnić się, że masz wystarczającą ilość danych do obsługi procesorów. Do testów skalowania zalecamy użycie co najmniej 1 TB.
Uwaga
Wydajność zapytań zwiększa się tylko przy większej równoległości, jeśli praca może zostać podzielona między węzły obliczeniowe. Jeśli okaże się, że skalowanie nie zmienia wydajności, może być konieczne dostosowanie projektu tabeli i/lub zapytań. Aby uzyskać wskazówki dotyczące dostrajania zapytań, zobacz Zarządzanie zapytaniami użytkowników.
Uprawnienia
Zmiana jednostek magazynu danych wymaga uprawnień opisanych w artykule ALTER DATABASE.
Wbudowane role Azure, takie jak Kontrybutor bazy danych SQL i Kontrybutor serwera SQL, mogą zmieniać ustawienia jednostek DWU.
Wyświetl bieżące ustawienia DWU
Aby wyświetlić bieżące ustawienie DWU:
- Otwórz Eksploratora obiektów programu SQL Server w programie Visual Studio.
- Połącz się z bazą danych master skojarzonej z serwerem logicznym SQL.
- Wybierz z dynamicznego widoku zarządzania sys.database_service_objectives. Oto przykład:
SELECT db.name [Database]
, ds.edition [Edition]
, ds.service_objective [Service Objective]
FROM sys.database_service_objectives AS ds
JOIN sys.databases AS db ON ds.database_id = db.database_id
;
Zmienianie jednostek magazynu danych
Portal Azure
Aby zmienić jednostki DWU:
Otwórz witrynę Azure Portal, otwórz bazę danych i kliknij pozycję Skaluj.
W sekcji Skalowanie przesuń suwak w lewo lub w prawo, aby zmienić ustawienie DWU.
Kliknij przycisk Zapisz. Zostanie wyświetlony komunikat potwierdzający. Kliknij przycisk Tak , aby potwierdzić lub nie , aby anulować.
PowerShell
Uwaga
Zalecamy korzystanie z modułu Azure Az programu PowerShell do interakcji z platformą Azure. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Aby zmienić jednostki DWU, użyj polecenia cmdlet Set-AzSqlDatabase programu PowerShell. Poniższy przykład ustawia cel poziomu usługi na DW1000 dla bazy danych MySQLDW hostowanej na serwerze MyServer.
Set-AzSqlDatabase -DatabaseName "MySQLDW" -ServerName "MyServer" -RequestedServiceObjectiveName "DW1000c"
For more information, see PowerShell cmdlets for dedicated SQL pool (formerly SQL DW)
T-SQL
Za pomocą języka T-SQL możesz wyświetlić bieżące ustawienia DWUsettings, zmienić ustawienia i sprawdzić postęp.
To change the DWUs:
- Połącz się z główną bazą danych skojarzoną z serwerem.
- Użyj instrukcji TSQL ALTER DATABASE . Poniższy przykład ustawia cel poziomu usługi na DW1000c dla bazy danych MySQLDW.
ALTER DATABASE MySQLDW
MODIFY (SERVICE_OBJECTIVE = 'DW1000c')
;
Interfejsy programistyczne REST
Aby zmienić DWU, użyj interfejsu API REST Tworzenie lub aktualizowanie bazy danych. Poniższy przykład ustawia cel poziomu usługi na DW1000c dla bazy danych MySQLDW
, która jest hostowana na serwerze MyServer. Serwer znajduje się w grupie zasobów platformy Azure o nazwie ResourceGroup1.
PUT https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/servers/{server-name}/databases/{database-name}?api-version=2014-04-01-preview HTTP/1.1
Content-Type: application/json; charset=UTF-8
{
"properties": {
"requestedServiceObjectiveName": "DW1000c"
}
}
Aby uzyskać więcej przykładów interfejsu API REST, zobacz Interfejsy API REST dla dedykowanej puli SQL (dawniej SQL DW).
Check status of DWU changes
DWU changes may take several minutes to complete. Jeśli skalowanie odbywa się automatycznie, rozważ zaimplementowanie logiki, aby upewnić się, że niektóre operacje zostały ukończone przed kontynuowaniem innej akcji.
Sprawdzanie stanu bazy danych za pomocą różnych punktów końcowych umożliwia poprawne zaimplementowanie automatyzacji. Portal udostępnia powiadomienie po zakończeniu operacji i bieżącego stanu baz danych, ale nie zezwala na programowe sprawdzanie stanu.
You cannot check the database state for scale-out operations with the Azure portal.
To check the status of DWU changes:
Połącz się z główną bazą danych skojarzoną z serwerem.
Prześlij następujące zapytanie, aby sprawdzić stan bazy danych.
SELECT * FROM sys.dm_operation_status WHERE resource_type_desc = 'Database' AND major_resource_id = 'MySQLDW' ;
This DMV returns information about various management operations on your dedicated SQL pool (formerly SQL DW) such as the operation and the state of the operation, which is either IN_PROGRESS or COMPLETED.
The scaling workflow
Po rozpoczęciu operacji skalowania system najpierw zamyka wszystkie otwarte sesje, cofając wszystkie otwarte transakcje, aby zapewnić spójny stan. For scale operations, scaling only occurs after this transactional rollback has completed.
- W przypadku operacji skalowania w górę system odłącza wszystkie węzły obliczeniowe, udostępnia dodatkowe węzły obliczeniowe, a następnie ponownie przyłącza do warstwy pamięci masowej.
- W przypadku operacji skalowania w dół system odłącza wszystkie węzły obliczeniowe, a następnie ponownie dołącza tylko wymagane węzły do warstwy magazynu.
Następne kroki
Aby dowiedzieć się więcej na temat zarządzania wydajnością, zobacz Klasy zasobów na potrzeby zarządzania obciążeniami oraz Limity pamięci i współbieżności.