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.
W tym artykule wyjaśniono, jak zarządzać zasobami obliczeniowymi dla dedykowanej puli SQL (dawniej SQL DW) w usłudze Azure Synapse Analytics. Możesz obniżyć koszty, wstrzymując dedykowaną pulę SQL lub skalując ją, aby spełnić wymagania dotyczące wydajności.
Co to jest zarządzanie obliczeniami?
Architektura dedykowanej puli SQL oddziela magazyn i zasoby obliczeniowe, umożliwiając niezależne skalowanie obu elementów. W rezultacie można skalować zasoby obliczeniowe w celu spełnienia wymagań związanych z wydajnością niezależnie od magazynu danych. Można również wstrzymywać i wznawiać działanie zasobów obliczeniowych.
Naturalną konsekwencją tej architektury jest to, że ceny zasobów obliczeniowych i magazynu są oddzielne. Jeśli przez pewien czas nie musisz używać dedykowanej puli SQL, możesz zaoszczędzić na kosztach zasobów obliczeniowych, wstrzymując obliczenia.
Skalowanie zasobów obliczeniowych
Możesz skalować w poziomie lub w pionie moc obliczeniową, dostosowując ustawienie jednostek magazynu danych (DWU) dla dedykowanej puli SQL. Wydajność ładowania i zapytań może wzrosnąć liniowo w miarę dodawania większej liczby jednostek DWU.
Aby uzyskać instrukcje skalowania poziomego, zobacz przewodniki szybkiego startu dla Azure portal, PowerShell lub T-SQL. Operacje skalowania w poziomie można również wykonywać przy użyciu interfejsu REST API.
Aby wykonać operację skalowania, dedykowana pula SQL najpierw zabija wszystkie przychodzące zapytania, a następnie cofa transakcje w celu zapewnienia spójnego stanu. Skalowanie jest realizowane dopiero po ukończeniu wycofywania transakcji. W przypadku operacji skalowania system odłącza warstwę magazynu od węzłów obliczeniowych, dodaje węzły obliczeniowe, a następnie ponownie dołącza warstwę magazynu do warstwy obliczeniowej.
Każda dedykowana pula SQL jest przechowywana jako 60 dystrybucji, które są równomiernie dystrybuowane do węzłów obliczeniowych. Dodanie większej liczby węzłów obliczeniowych zwiększa moc obliczeniową. Wraz ze wzrostem liczby węzłów obliczeniowych liczba dystrybucji na węzeł obliczeniowy zmniejsza się, zapewniając większą moc obliczeniową zapytań. Podobnie zmniejszenie liczby jednostek DWU zmniejsza liczbę węzłów obliczeniowych, co zmniejsza ilość zasobów obliczeniowych dla zapytań.
W poniższej tabeli pokazano, jak zmienia się liczba dystrybucji na węzeł obliczeniowy wraz ze zmianą DWU. DW30000c zapewnia 60 węzłów obliczeniowych i osiąga znacznie wyższą wydajność zapytań niż DW100c.
Jednostki magazynu danych | Liczba węzłów obliczeniowych | Liczba dystrybucji na węzeł |
---|---|---|
DW100c | 1 | 60 |
DW200c | 1 | 60 |
DW300c | 1 | 60 |
DW400c | 1 | 60 |
DW500c. | 1 | 60 |
DW1000c | 2 | 30 |
DW1500c | 3 | 20 |
DW2000c | 4 | 15 |
DW2500c | 5 | 12 |
DW3000c | 6 | 10 |
DW5000c | 10 | 6 |
DW6000c | 12 | 5 |
DW7500c | 15 | 100 |
DW10000c | 20 | 3 |
DW15000c | 30 | 2 |
DW30000c | 60 | 1 |
Znajdowanie odpowiedniego rozmiaru jednostek magazynu danych
Aby zobaczyć korzyści wydajnościowe ze skalowania w poziomie, szczególnie w przypadku większych jednostek magazynu danych, należy użyć co najmniej zestawu danych o rozmiarze 1 TB. Aby znaleźć najlepszą liczbę jednostek DWU dla dedykowanej puli SQL, spróbuj przeprowadzić skalowanie w górę i w dół. Uruchom kilka zapytań z różnymi liczbami jednostek DWU po załadowaniu danych. Ponieważ skalowanie jest szybkie, możesz wypróbować różne poziomy wydajności w ciągu godziny lub mniej.
Zalecenia dotyczące ustalenia najlepszej liczby jednostek DWU:
- W przypadku dedykowanej puli SQL w fazie rozwoju, rozpocznij od wybrania mniejszej liczby jednostek DWU. Dobrym punktem wyjścia jest DW400c lub DW200c.
- Monitoruj wydajność aplikacji, obserwując liczbę wybranych jednostek DWU w porównaniu z obserwowaną wydajnością.
- Załóżmy liniową skalę i określ, o ile trzeba zwiększyć lub zmniejszyć liczbę jednostek DWU.
- Kontynuuj wprowadzanie korekt, dopóki nie osiągniesz optymalnego poziomu wydajności dla wymagań biznesowych.
Kiedy należy skalować w poziomie
Rozszerzanie jednostek DWU wpływa na następujące aspekty wydajności:
- Liniowo poprawia wydajność systemu na potrzeby skanowania, agregacji i instrukcji CTAS
- Zwiększa liczbę czytelników i pisarzy podczas ładowania danych
- Maksymalna liczba współbieżnych zapytań i gniazd współbieżności
Zalecenia dotyczące skalowania w poziomie jednostek DWU:
- Przed wykonaniem operacji ciężkiego ładowania lub przekształcania danych przeprowadź skalowanie, aby umożliwić szybszą dostępność danych.
- W godzinach szczytu przeprowadź skalowanie w poziomie, aby obsłużyć większą liczbę współbieżnych zapytań.
Co zrobić, jeśli skalowanie w górę nie poprawi wydajności?
Dodanie jednostek DWU zwiększa paralelizm. Jeśli praca jest równomiernie podzielona między węzły obliczeniowe, dodatkowa równoległość zwiększa wydajność zapytań. Jeśli skalowanie w górę nie zmienia wydajności, istnieje kilka powodów, dla których może się to zdarzyć. Dane mogą być niesymetryczne w różnych dystrybucjach lub zapytania mogą wprowadzać dużą ilość przenoszenia danych. Aby zbadać problemy z wydajnością zapytań, zobacz Rozwiązywanie problemów z wydajnością.
Wstrzymywanie i wznawianie obliczeń
Wstrzymanie obliczeń powoduje odłączenie warstwy magazynu od węzłów obliczeniowych. Zasoby obliczeniowe są zwalniane z twojego konta. Opłaty za zasoby obliczeniowe nie są naliczane podczas wstrzymania obliczeń. Wznawianie obliczeń ponownie dołącza zasoby przechowywania do węzłów obliczeniowych i wznawia naliczanie opłat za obliczenia.
Gdy wstrzymasz dedykowaną pulę SQL:
- Zasoby obliczeniowe i zasoby pamięci są zwracane do puli dostępnych zasobów w centrum danych.
- Koszty jednostek magazynu danych są zerowe podczas wstrzymania.
- Nie ma to wpływu na magazyn danych, a dane pozostają nienaruszone.
- Wszystkie uruchomione lub w kolejce operacje są anulowane.
- Liczniki DMV są resetowane.
Gdy wznawiasz dedykowaną pulę SQL:
- Dedykowana pula SQL uzyskuje zasoby obliczeniowe i zasoby pamięci dla ustawienia jednostek DWU.
- Obliczanie opłat za jednostki DWU zostaje wznowione.
- Twoje dane staną się dostępne.
- Po aktywacji dedykowanej puli SQL należy ponownie uruchomić zapytania związane z obciążeniem.
Jeśli zawsze chcesz, aby dedykowana pula SQL była dostępna, zamiast wstrzymywania jej rozważ skalowanie jej w dół do najmniejszego rozmiaru.
Aby zapoznać się z krokami wstrzymywania i wznawiania, zobacz szybkie przewodniki dotyczące portalu Azure lub programu PowerShell. Możesz również użyć interfejsu API REST wstrzymywania lub interfejsu API REST wznawiania.
Opróżnij transakcje przed wstrzymaniem lub skalowaniem
Zalecamy, aby poczekać na zakończenie istniejących transakcji przed zainicjowaniem operacji wstrzymania lub skalowania.
W przypadku wstrzymania lub skalowania dedykowanej puli SQL zapytania są anulowane w tle po zainicjowaniu żądania wstrzymania lub skalowania. Anulowanie prostego zapytania SELECT jest szybką operacją i prawie nie ma wpływu na czas potrzebny do wstrzymania lub skalowania wystąpienia. Jednak zapytania transakcyjne, które modyfikują dane lub strukturę danych, mogą nie być w stanie szybko się zatrzymać. Zapytania transakcyjne muszą, zgodnie z definicją, zostać wykonane w całości lub wycofać dokonane zmiany.
Cofnięcie pracy wykonanej przez zapytanie transakcyjne może trwać równie długo lub nawet dłużej niż pierwotna zmiana wprowadzona przez zapytanie. Jeśli na przykład anulujesz zapytanie, które usuwało wiersze i zostało już uruchomione przez godzinę, może upłynąć godzinę, zanim system wstawi usunięte wiersze. Jeśli uruchamiasz wstrzymanie lub skalowanie, gdy transakcje są w locie, wstrzymanie lub skalowanie może zająć dużo czasu, ponieważ wstrzymywanie i skalowanie musi czekać na zakończenie wycofywania, zanim będzie można kontynuować.
Aby uzyskać więcej informacji, zobacz Używanie transakcji i Optymalizowanie transakcji.
Automatyzowanie zarządzania obliczeniami
Aby zautomatyzować operacje zarządzania obliczeniami, zobacz Zarządzanie zasobami obliczeniowymi dla dedykowanej puli SQL przy użyciu usługi Azure Functions.
Wykonanie każdej operacji skalowania poziomego, wstrzymywania i wznawiania może potrwać kilka minut. Jeśli skalowanie, wstrzymanie lub wznawianie jest wykonywane automatycznie, zalecamy zaimplementowanie logiki, aby upewnić się, że niektóre operacje zostały ukończone przed kontynuowaniem innej akcji. Sprawdzanie stanu dedykowanej puli SQL za pomocą różnych punktów końcowych umożliwia poprawne zaimplementowanie automatyzacji takich operacji.
Aby sprawdzić stan dedykowanej puli SQL, zobacz przewodniki "Szybki start" dotyczące programu PowerShell lub języka T-SQL. Możesz również sprawdzić stan dedykowanej puli SQL przy użyciu interfejsu API REST.
Uprawnienia
Skalowanie dedykowanej puli SQL wymaga uprawnień opisanych w artykule ALTER DATABASE. Wstrzymywanie i wznawianie wymaga roli Współautor SQL DB, w szczególności Microsoft.Sql/servers/databases/action.