Szczegółowe informacje o wydajności zapytań dla usługi Azure SQL Database

Dotyczy:Azure SQL Database

Narzędzie Szczegółowe informacje o wydajności zapytań oferuje inteligentną analizę zapytań dla pojedynczych baz danych i dla baz danych w puli. Pomaga ono zidentyfikować zapytania z największym użyciem zasobów i długotrwałe zapytania w obciążeniu. Dzięki temu można znaleźć zapytania, które należy zoptymalizować w celu poprawy ogólnej wydajności obciążenia i wydajnego użycia opłacanego zasobu. Narzędzie Szczegółowe informacje o wydajności zapytań skraca czas poświęcany na rozwiązywanie problemów z wydajnością bazy danych, oferując:

  • Lepszy wgląd w użycie zasobów baz danych (DTU)
  • Szczegółowe informacje na temat najważniejszych zapytań bazy danych według procesora CPU, czasu trwania i liczby wykonań (potencjalnych kandydatów do dostrajania w celu zwiększenia wydajności)
  • Możliwość przechodzenia do szczegółów zapytania w celu wyświetlenia tekstu zapytania i historii wykorzystania zasobów
  • Adnotacje pokazujące zalecenia dotyczące wydajności doradców bazy danych

Query Performance Insight

Wymagania wstępne

Szczegółowe informacje o wydajności zapytań wymagają, aby magazyn zapytań był aktywny w bazie danych. Jest on domyślnie automatycznie włączony dla wszystkich baz danych Azure SQL Database. Jeśli magazyn zapytań nie jest uruchomiony, w witrynie Azure Portal pojawi się monit o jego włączenie.

Uwaga

Jeśli w portalu pojawi się komunikat „Magazyn zapytań nie został prawidłowo skonfigurowany dla tej bazy danych”, zobacz temat Optymalizacja konfiguracji magazynu zapytań.

Uprawnienia

Do korzystania z narzędzia Szczegółowe informacje o wydajności zapytań potrzebne są następujące uprawnienia kontroli dostępu na podstawie ról na platformie Azure (Azure RBAC):

  • Uprawnienia czytelnika, właściciela, współautora, współautora bazy danych SQL lub współautora programu SQL Server są wymagane do wyświetlania najważniejszych zapytań i wykresów zużywających zasoby.
  • Uprawnienia właściciela, współautora, współautora bazy danych SQL lub współautora programu SQL Server są wymagane do wyświetlania tekstu zapytania.

Korzystanie ze szczegółowych informacji o wydajności zapytań

Szczegółowe informacje o wydajności zapytań są łatwe w użyciu:

  1. Otwórz witrynę Azure Portal i znajdź bazę danych, którą chcesz zbadać.

  2. W menu po lewej stronie otwórz pozycję Inteligentne szczegółowe informacje o wydajności>zapytań wydajności.

    Query Performance Insight on the menu

  3. Na pierwszej karcie przejrzyj listę najważniejszych zapytań zużywających zasoby.

  4. Wybierz pojedyncze zapytanie, aby wyświetlić jego szczegóły.

  5. Otwórz zalecenia dotyczące wydajności inteligentnej wydajności>i sprawdź, czy są dostępne jakiekolwiek zalecenia dotyczące wydajności. Aby uzyskać więcej informacji na temat wbudowanych zaleceń dotyczących wydajności, zobacz Azure SQL Database Advisor.

  6. Użyj suwaków lub ikon powiększenia, aby zmienić obserwowany interwał.

    Performance dashboard

Uwaga

Aby usługa Azure SQL Database renderować informacje w szczegółowych informacjach o wydajności zapytań, magazyn zapytań musi przechwytywać kilka godzin danych. Jeśli baza danych nie ma aktywności lub magazyn zapytań nie był aktywny w określonym okresie, wykresy będą puste, gdy szczegółowe informacje o wydajności zapytań wyświetlają ten zakres czasu. Magazyn zapytań można włączyć w dowolnym momencie, jeśli nie jest uruchomiony. Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania dotyczące magazynu zapytań.

Aby uzyskać zalecenia dotyczące wydajności bazy danych, wybierz pozycję Rekomendacje w okienku nawigacji Szczegółowe informacje o wydajności zapytań.

The Recommendations tab

Przeglądanie zapytań zużywających najwięcej procesora CPU

Domyślnie szczegółowe informacje o wydajności zapytań pokazują pięć najważniejszych zapytań zużywających procesor CPU po pierwszym otwarciu.

  1. Zaznacz lub wyczyść poszczególne zapytania, aby uwzględnić je lub wykluczyć z wykresu przy użyciu pól wyboru.

    Górna linia przedstawia ogólną wartość procentową jednostek DTU dla bazy danych. Paski pokazują procent użycia wybranych zapytań w wybranym interwale. Jeśli na przykład wybrano pozycję Ostatnie tydzień , każdy pasek reprezentuje jeden dzień.

    Top queries

    Ważne

    Pokazana linia DTU jest agregowana do maksymalnej wartości zużycia w okresach jednogodzinnych. Jest przeznaczona dla porównania wysokiego poziomu tylko ze statystykami wykonywania zapytań. W niektórych przypadkach użycie jednostek DTU może wydawać się zbyt wysokie w porównaniu z wykonanymi zapytaniami, ale może to nie być tak.

    Jeśli na przykład zapytanie maksymalnie przekroczyło jednostki DTU do 100% tylko przez kilka minut, wiersz jednostki DTU w szczegółowych informacjach o wydajności zapytań pokaże całą godzinę użycia jako 100% (konsekwencja maksymalnej wartości zagregowanej).

    W przypadku bardziej precyzyjnego porównania (do jednej minuty) rozważ utworzenie niestandardowego wykresu wykorzystania jednostek DTU:

    1. W witrynie Azure Portal wybierz pozycję Monitorowanie usługi Azure SQL Database>.
    2. Wybierz pozycję Metryki.
    3. Wybierz pozycję +Dodaj wykres.
    4. Wybierz procent jednostek DTU na wykresie.
    5. Ponadto wybierz pozycję Ostatnie 24 godziny w menu w lewym górnym rogu i zmień ją na minutę.

    Użyj niestandardowego wykresu DTU z bardziej szczegółowym poziomem szczegółów, aby porównać go z wykresem wykonywania zapytania.

    Dolna siatka przedstawia zagregowane informacje dotyczące widocznych zapytań:

    • Identyfikator zapytania, który jest unikatowym identyfikatorem zapytania w bazie danych.
    • Procesor CPU na zapytanie w obserwowanym interwale, który zależy od funkcji agregacji.
    • Czas trwania zapytania, który również zależy od funkcji agregacji.
    • Łączna liczba wykonań dla określonego zapytania.
  2. Jeśli dane staną się nieaktualne, wybierz przycisk Odśwież .

  3. Użyj suwaków i przycisków powiększenia, aby zmienić interwał obserwacji i zbadać skoki zużycia:

    Sliders and zoom buttons for changing the interval

  4. Opcjonalnie możesz wybrać kartę Niestandardowe , aby dostosować widok dla:

    • Metryka (procesor CPU, czas trwania, liczba wykonań).
    • Przedział czasu (ostatnie 24 godziny, ostatni tydzień lub ostatni miesiąc).
    • Liczba zapytań.
    • Funkcja agregacji.

    Custom tab

  5. Wybierz przycisk Przejdź>, aby wyświetlić dostosowany widok.

    Ważne

    Szczegółowe informacje o wydajności zapytań są ograniczone do wyświetlania 5–20 najważniejszych zapytań zużywających, w zależności od wybranej opcji. Baza danych może uruchamiać wiele innych zapytań poza pokazanymi na pierwszym wykresie, a te zapytania nie zostaną uwzględnione na wykresie.

    Może istnieć typ obciążenia bazy danych, w którym wiele mniejszych zapytań, poza pokazanymi najczęściej używanymi jednostkami DTU, jest uruchamianych często i używać większości jednostek DTU. Te zapytania nie są wyświetlane na wykresie wydajnościowym.

    Na przykład zapytanie mogło zużywać znaczną ilość jednostek DTU przez pewien czas, chociaż całkowite użycie w obserwowanym okresie jest mniejsze niż inne zapytania zużywające najwięcej. W takim przypadku użycie zasobów tego zapytania nie będzie wyświetlane na wykresie.

    Jeśli musisz zrozumieć najważniejsze wykonania zapytań wykraczające poza ograniczenia szczegółowych informacji o wydajności zapytań, rozważ użycie usługi Azure SQL Szczegółowe informacje na potrzeby zaawansowanego monitorowania wydajności bazy danych i rozwiązywania problemów.

Wyświetlanie szczegółów poszczególnych zapytań

Aby wyświetlić szczegóły zapytania:

  1. Wybierz dowolne zapytanie na liście najważniejszych zapytań.

    List of top queries

    Zostanie otwarty widok szczegółowy. Pokazuje użycie procesora CPU, czas trwania i liczbę wykonań w czasie.

  2. Wybierz funkcje wykresu, aby uzyskać szczegółowe informacje.

    • Górny wykres przedstawia linię z ogólną wartością procentową jednostek DTU bazy danych. Słupki to procent użycia wybranego zapytania.
    • Drugi wykres przedstawia całkowity czas trwania wybranego zapytania.
    • Dolny wykres przedstawia łączną liczbę wykonań według wybranego zapytania.

    Query details

  3. Opcjonalnie użyj suwaków, użyj przycisków powiększenia lub wybierz Ustawienia, aby dostosować sposób wyświetlania danych zapytania lub wybrać inny zakres czasu.

    Ważne

    Szczegółowe informacje o wydajności zapytań nie przechwytują żadnych zapytań DDL. W niektórych przypadkach może nie przechwytywać wszystkich zapytań ad hoc.

    Jeśli baza danych jest zablokowana w zakresie z blokadą tylko do odczytu, okienko szczegółów zapytania nie będzie mogło załadować.

Przeglądanie najważniejszych zapytań na czas trwania

Dwie metryki w szczegółowych informacjach o wydajności zapytań mogą pomóc w znalezieniu potencjalnych wąskich gardeł: czasu trwania i liczby wykonań.

Długotrwałe zapytania mają największy potencjał do dłuższego blokowania zasobów, blokowania innych użytkowników i ograniczania skalowalności. Są również najlepszymi kandydatami do optymalizacji. Aby uzyskać więcej informacji, zobacz Omówienie i rozwiązywanie problemów z blokowaniem usługi Azure SQL.

Aby zidentyfikować długotrwałe zapytania:

  1. Otwórz kartę Niestandardowe w obszarze Szczegółowe informacje o wydajności zapytań dla wybranej bazy danych.

  2. Zmień metryki na czas trwania.

  3. Wybierz liczbę zapytań i interwał obserwacji.

  4. Wybierz funkcję agregacji:

    • Suma sumuje cały czas wykonywania zapytania dla całego interwału obserwacji.
    • Wartość Max wyszukuje zapytania, w których czas wykonywania był maksymalny dla całego interwału obserwacji.
    • Średnia znajduje średni czas wykonywania wszystkich wykonań zapytań i pokazuje pierwsze dla tych średnich.

    Query duration

  5. Wybierz przycisk Przejdź>, aby wyświetlić dostosowany widok.

    Ważne

    Dostosowanie widoku zapytania nie powoduje zaktualizowania wiersza jednostki DTU. Wiersz jednostki DTU zawsze pokazuje maksymalną wartość zużycia dla interwału.

    Aby lepiej zrozumieć użycie jednostek DTU bazy danych (do jednej minuty), rozważ utworzenie wykresu niestandardowego w witrynie Azure Portal:

    1. Wybierz pozycję Monitorowanie usługi Azure SQL Database>.
    2. Wybierz pozycję Metryki.
    3. Wybierz pozycję +Dodaj wykres.
    4. Wybierz procent jednostek DTU na wykresie.
    5. Ponadto wybierz pozycję Ostatnie 24 godziny w menu w lewym górnym rogu i zmień ją na minutę.

    Zalecamy użycie niestandardowego wykresu DTU do porównania z wykresem wydajności zapytań.

Przeglądanie najważniejszych zapytań na liczbę wykonań

Aplikacja użytkownika korzystająca z bazy danych może działać wolno, mimo że duża liczba wykonań może nie mieć wpływu na samą bazę danych, a użycie zasobów jest niskie.

W niektórych przypadkach duża liczba wykonań może prowadzić do większej liczby rund sieciowych. Rundy wpływają na wydajność. Podlegają one opóźnieniu sieci i opóźnieniu serwera podrzędnego.

Na przykład wiele witryn internetowych opartych na danych intensywnie uzyskuje dostęp do bazy danych dla każdego żądania użytkownika. Mimo że buforowanie połączeń pomaga, zwiększony ruch sieciowy i obciążenie przetwarzania na serwerze może spowolnić wydajność. Ogólnie rzecz biorąc, zachowaj rundy do minimum.

Aby zidentyfikować często wykonywane zapytania ("chatty"):

  1. Otwórz kartę Niestandardowe w obszarze Szczegółowe informacje o wydajności zapytań dla wybranej bazy danych.

  2. Zmień metryki na liczbę wykonań.

  3. Wybierz liczbę zapytań i interwał obserwacji.

  4. Wybierz przycisk Przejdź>, aby wyświetlić dostosowany widok.

    Query execution count

Omówienie adnotacji dostrajania wydajności

Podczas eksplorowania obciążenia w szczegółowych informacjach o wydajności zapytań możesz zauważyć ikony z pionowym linią na górze wykresu.

Te ikony są adnotacjami. Pokazują zalecenia dotyczące wydajności usługi Azure SQL Database Advisor. Po umieszczeniu wskaźnika myszy na adnotacji możesz uzyskać podsumowanie informacji na temat zaleceń dotyczących wydajności.

Query annotation

Jeśli chcesz dowiedzieć się więcej lub zastosować zalecenie doradcy, wybierz ikonę, aby otworzyć szczegóły zalecanej akcji. Jeśli jest to aktywne zalecenie, możesz zastosować je od razu w portalu.

Query annotation details

W niektórych przypadkach ze względu na poziom powiększenia istnieje możliwość, że adnotacje blisko siebie są zwinięte w jedną adnotację. Szczegółowe informacje o wydajności zapytań reprezentują to jako ikonę adnotacji grupy. Wybranie ikony adnotacji grupy powoduje otwarcie nowego okienka zawierającego adnotacje.

Korelowanie zapytań i akcji dostrajania wydajności może pomóc lepiej zrozumieć obciążenie.

Optymalizowanie konfiguracji magazynu zapytań

Podczas korzystania z szczegółowych informacji o wydajności zapytań mogą zostać wyświetlone następujące komunikaty o błędach magazynu zapytań:

  • "Magazyn zapytań nie jest poprawnie skonfigurowany w tej bazie danych. Kliknij tutaj, aby dowiedzieć się więcej”.
  • "Magazyn zapytań nie jest poprawnie skonfigurowany w tej bazie danych. Kliknij tutaj, aby zmienić ustawienia”.

Te komunikaty są zwykle wyświetlane, gdy magazyn zapytań nie może zbierać nowych danych.

Pierwszy przypadek występuje, gdy magazyn zapytań jest w stanie tylko do odczytu i parametry są ustawiane optymalnie. Można to naprawić, zwiększając rozmiar magazynu danych lub usuwając wyczyszczenie magazynu zapytań. (Jeśli wyczyścisz magazyn zapytań, wszystkie wcześniej zebrane dane telemetryczne zostaną utracone).

Query Store details

Drugi przypadek występuje, gdy magazyn zapytań nie jest włączony lub parametry nie są ustawiane optymalnie. Możesz zmienić zasady przechowywania i przechwytywania, a także włączyć magazyn zapytań, uruchamiając następujące polecenia języka T-SQL, pod warunkiem, że edytor zapytań witryny Azure Portal, program SQL Server Management Studio (SSMS), narzędzie Azure Data Studio, sqlcmd lub wybrane narzędzie klienckie.

Istnieją dwa typy zasad przechowywania:

  • Na podstawie rozmiaru: jeśli te zasady są ustawione na auto, dane zostaną automatycznie oczyszczone po osiągnięciu niemal maksymalnego rozmiaru.
  • Na podstawie czasu: domyślnie te zasady są ustawione na 30 dni. Jeśli magazyn zapytań zabraknie miejsca, usunie informacje o kwerendach starsze niż 30 dni.

Możesz ustawić zasady przechwytywania na:

  • Wszystko: Magazyn zapytań przechwytuje wszystkie zapytania.
  • Automatycznie: Magazyn zapytań ignoruje rzadko występujące zapytania i zapytania z nieistotnym czasem kompilowania i wykonywania. Progi liczby wykonań, czasu trwania kompilacji i czasu trwania środowiska uruchomieniowego są określane wewnętrznie. Jest to domyślne ustawienie opcji.
  • Brak: Magazyn zapytań zatrzymuje przechwytywanie nowych zapytań, ale statystyki środowiska uruchomieniowego dla już przechwyconych zapytań są nadal zbierane.

Zalecamy ustawienie wszystkich zasad na automatyczne i zasady czyszczenia na 30 dni, wykonując następujące polecenia z programu SSMS lub witryny Azure Portal. (Zastąp YourDB ciąg nazwą bazy danych).

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (SIZE_BASED_CLEANUP_MODE = AUTO);

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 30));

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (QUERY_CAPTURE_MODE = AUTO);

Zwiększ rozmiar magazynu zapytań, łącząc się z bazą danych za pośrednictwem programu SSMS lub witryny Azure Portal i uruchamiając następujące zapytanie. (Zastąp YourDB ciąg nazwą bazy danych).

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (MAX_STORAGE_SIZE_MB = 1024);

Zastosowanie tych ustawień spowoduje, że magazyn zapytań będzie zbierał dane telemetryczne dla nowych zapytań. Jeśli magazyn zapytań musi działać od razu, możesz opcjonalnie wyczyścić magazyn zapytań, uruchamiając następujące zapytanie za pomocą programu SSMS lub witryny Azure Portal. (Zastąp YourDB ciąg nazwą bazy danych).

Uwaga

Uruchomienie następującego zapytania spowoduje usunięcie wszystkich wcześniej zebranych monitorowanych danych telemetrycznych w magazynie zapytań.

    ALTER DATABASE [YourDB] SET QUERY_STORE CLEAR;

Następne kroki

Rozważ użycie usługi Azure SQL Analytics do zaawansowanego monitorowania wydajności dużej floty pojedynczych baz danych, pul elastycznych, wystąpień zarządzanych i baz danych wystąpień.