Postgres Wyjaśnij koszt

Postgres Wyjasnij Koszt



Postgres to potężny i szeroko stosowany system relacyjnych baz danych typu open source, cieszący się dobrą reputacją ze względu na solidność, funkcjonalność i wydajność.

Jednym z narzędzi, które sprawiają, że Postgres jest wyjątkowo wydajny, jest jego polecenie EXPLAIN, które dostarcza szczegółowych informacji na temat planu wykonania zapytania SQL.

Co to jest polecenie WYJAŚNIJ?

Polecenie EXPLAIN wyświetla plan wykonania, który planista PostgreSQL generuje dla danej instrukcji SQL.







Obejmuje to informację o szacunkowych kosztach wykonania każdego kroku zapytania. Analizując te koszty, możemy zrozumieć, dlaczego zapytanie działa wolno i jak je zoptymalizować.



PostgreSQL Wyjaśnij koszt

Komendy EXPLAIN używamy głównie do pobierania informacji o zadanym zapytaniu. Polecenie wyświetla pewne informacje o zapytaniu.



Weźmy na przykład zapytanie, które jest pokazane poniżej:





WYBIERZ f.tytuł, c.nazwa
Z filmu f
DOŁĄCZ do kategorii_filmów fc ON f.film_id = fc.film_id
DOŁĄCZ do kategorii c ON fc.category_id = c.category_id;

Jeśli uruchomimy polecenie wyjaśniania na poprzednim prostym łączeniu:

WYJAŚNIJ WYBIERZ f.tytuł, c.nazwa
Z filmu f
DOŁĄCZ do kategorii_filmów fc ON f.film_id = fc.film_id
DOŁĄCZ do kategorii c ON fc.category_id = c.category_id;

Powinniśmy otrzymać dane wyjściowe, jak pokazano poniżej:



Możesz zauważyć, że dla każdego kroku zapytania PostgreSQL zwraca szacowany koszt tego zapytania.

  1. startup_cost — pokazuje szacunkowy koszt zainicjowania operacji przed rozpoczęciem generowania wierszy.
  2. total_cost — całkowity koszt pobrania wszystkich wierszy.
  3. Wiersze – określa szacunkową liczbę wierszy zwracanych przez zapytanie.
  4. Szerokość — określa średnią liczbę bajtów wszystkich wierszy, które są zwracane przez operację.

Koszty zapytań w PostgreSQL są wyrażone w dowolnych jednostkach, które są określone przez parametry kosztów ustawione w konfiguracji serwera.

Kluczem tych parametrów jest seq_page_cost, który ustawia koszt pobrania strony dysku, która nie znajduje się w pamięci podręcznej.

Jeśli jesteś na pgAdmin, możesz użyć funkcji „wyjaśnij analizę”, aby uzyskać bardziej czytelny i dobrze przedstawiony diagram dla polecenia wyjaśniania. Na przykład:

Następnie możesz kliknąć każdy krok, aby wyświetlić statystyki i szacunkowe koszty.

Optymalizacja zapytań na podstawie kosztów

Podczas optymalizacji zapytań ważne jest, aby zrozumieć, że niższy koszt zwykle oznacza szybsze wykonanie. Dlatego możesz modyfikować swoje zapytania po niższych kosztach.
Oto kilka czynników, które należy wziąć pod uwagę:

Użyj indeksów tabeli – Indeksy znacznie zmniejszają koszt zapytań opartych na wyszukiwaniu, zachowując strukturę danych, która pozwala na szybsze wyszukiwanie.

Mądrze używaj funkcji i operatorów – Oszacowanie kosztów funkcji i operatorów nie zawsze jest dokładne, ponieważ rzeczywisty koszt może w dużym stopniu zależeć od konkretnych danych. Dlatego ogranicz użycie funkcji i skomplikowanych operatorów do minimum.

Wniosek

Zbadaliśmy koncepcję kosztów w poleceniu PostgreSQL ANALYZE. Omówiliśmy, co oznaczają dane wyjściowe polecenia i jak używać danych wyjściowych kosztów do analizowania najbardziej wydajnego sposobu uruchamiania danego zapytania.