Omówienie instrukcji EXPLAIN

Ukończone

Użyj instrukcji EXPLAIN, aby wyświetlić plan wykonywania zapytania. Funkcja WYJAŚNIJ może być używana z dowolną instrukcją SELECT, INSERT, UPDATE, DELETE, VALUES, EXECUTE, DECLARE lub CREATE TABLE AS.

Funkcja EXPLAIN wyświetla plan wykonywania zapytania, co pozwala zrozumieć, w jaki sposób postgreSQL: wykonuje instrukcję, czy indeksy są używane, jak tabele są łączone, oraz koszt notalny zapytania.

Składnia funkcji WYJAŚNI jest następująca:

EXPLAIN [ (parameter [, ...] ) ] statement

Opcjonalne parametry:

  • ANALIZA
  • PEŁNY
  • KOSZTY
  • BUFORÓW
  • FORMACIE

Na przykład:

EXPLAIN ANALYZE SELECT * FROM category ORDER BY cat_id;

To proste zapytanie zwraca następujące informacje:

Zrzut ekranu przedstawiający plan zapytania.

ANALIZA

Ta opcja wykonuje instrukcję i zwraca plan zapytania. Dane wyjściowe z instrukcji są odrzucane, ale instrukcja jest nadal wykonywana. Możesz połączyć instrukcje ROLLBACK i EXPLAIN ANALYZE, aby zapobiec zastosowaniu zmian za pomocą zapytania, które wprowadza zmiany w bazie danych, takie jak INSERT, UPDATE lub DELETE. Na przykład:

BEGIN;

> EXPLAIN ANALYZE INSERT INTO Animal 
> (ani_id, name, weight_kg, cat_id, enc_id) 
> VALUES (28, 'Robin Robin', 0.5, 1, 2);

ROLLBACK;

PEŁNY

Wyświetla dodatkowe informacje, w tym:

  • lista kolumn wyjściowych dla każdego węzła w drzewie planu
  • nazwy tabel i funkcji kwalifikowanych schematem
  • nazwy zmiennych w wyrażeniach wraz z aliasem tabeli
  • nazwa każdego wyzwalacza, dla którego są wyświetlane statystyki

KOSZTY

Obejmuje szacowany koszt uruchamiania i całkowity koszt oraz szacowaną liczbę wierszy i szacowaną szerokość każdego wiersza.

BUFORÓW

Bufory mogą być używane tylko z opcją ANALIZUJ. Baza danych PostgreSQL używa pamięci podręcznej LRU (Least Recently Used) do przechowywania często używanych danych w pamięci. Bufory wyświetlają, ile danych pochodzi z pamięci podręcznej i ile jest pobieranych z dysku. Wyświetla liczbę trafień udostępnionych, lokalnych i tymczasowych bloków, odczytów i zapisów. Dane dostarczane przez bufory mogą pomóc zrozumieć części zapytań intensywnie korzystających z operacji we/wy.

FORMACIE

Definiuje format danych wyjściowych. Pliki XML, JSON lub YAML zawierają te same informacje co TEKST, ale w formacie łatwiejszym do użycia przez programy. Tekst jest wartością domyślną.