Informacje o statystykach
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;
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:
Przejdź do witryny Azure Portal i wybierz serwer usługi Azure Database for PostgreSQL.
Wybierz pozycję Parametry serwera i przejdź do ustawienia pg_stat_statements.track .
Jeśli chcesz wyłączyć śledzenie, wybierz pozycję BRAK.
Aby uzyskać dokładniejsze śledzenie, wybierz pozycję WSZYSTKIE.
Ustawieniem domyślnym jest TOP.
Wybierz pozycję Zapisz.