Omówienie instrukcji EXPLAIN
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:
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ą.