Informacje o statystykach

Ukończone

Po uruchomieniu zapytania należy utworzyć plan, aby zdecydować, jak uzyskać dostęp do danych. Jeśli na przykład zapytanie SELECT zwraca każdy wiersz, nie ma korzyści z używania indeksu i bardziej wydajne byłoby skanowanie całej tabeli. W tym scenariuszu planowanie zapytania jest proste, ale większość planów zapytań nie jest tak prosta, aby rozwiązać ten problem.

Wyobraź sobie scenariusz, w którym uruchamiasz zapytanie, które szukało każdego zamówienia z zakresu od 10,00 USD do 20,00 USD. Początkowo nie wiemy, czy zapytanie zwraca wszystkie dane w tabeli, czy tylko niewielki podzbiór. To nieznane sprawia, że trudno zaplanować strategię zapytania, dopóki nie zobaczymy danych. Jeśli wiemy, że tabela zawiera zamówienia, które mają cenę zakupu z zakresu od 1,00 USD do 800,00 USD, indeks może służyć do wyszukiwania małego podzestawu danych. Jednak nadal może nie być wystarczającej ilości informacji, aby wygenerować odpowiedni plan zapytania. W tym przykładzie, chociaż zamówienia mają cenę zakupu z zakresu od 1,00 USD do 800,00 USD, 95% zamówień wynosi od 10,00 USD do 20,00 USD, a skanowanie danych jest w rzeczywistości najbardziej efektywnym planem.

W przypadku scenariuszy, takich jak w poprzednim przykładzie, usługa PostgreSQL potrzebuje szczegółowych statystyk, aby móc korzystać z optymalnego planu zapytań.

Aby monitorować statystyki planowania i wykonywania, istnieje rozszerzenie PostgreSQL o nazwie pg_stat_statements. pg_stat_statements jest domyślnie włączona w usłudze Azure Database for PostgreSQL i umożliwia członkom roli pg_read_all_stats wykonywanie zapytań dotyczących statystyk przy użyciu wielu widoków pg_stat. Następujące zapytanie zwraca działanie zapytania przy użyciu widoku pg_stat_activity :

SELECT * FROM pg_stat_activity;

Zrzut ekranu przedstawiający zapytanie pg_stat_activity.

Wyłączanie pg_stat_statements

Jeśli zapytania są unikatowe i nie powtarzasz tego samego zapytania okresowo, dane historyczne zapytań są mniej przydatne. Ponadto, jeśli nie używasz widoków pg_stat , nie zapewniają one żadnych korzyści. Istnieje obciążenie związane z utrzymywaniem pg_stat_statements, co może wynosić do 50%, a w tych scenariuszach można wyłączyć śledzenie pg_stat_statements .

Aby wyłączyć śledzenie pg_stat_statements, wykonaj następujące kroki:

  1. Przejdź do witryny Azure Portal i wybierz serwer usługi Azure Database for PostgreSQL.

  2. Wybierz pozycję Parametry serwera i przejdź do ustawienia pg_stat_statements.track .

    Zrzut ekranu przedstawiający polecenie pg_statements.

  3. Jeśli chcesz wyłączyć śledzenie, wybierz pozycję BRAK.

  4. Aby uzyskać dokładniejsze śledzenie, wybierz pozycję WSZYSTKIE.

  5. Ustawieniem domyślnym jest TOP.

  6. Wybierz pozycję Zapisz.