2013-02-22 15 views
12

Szukałem, ale nie mogłem znaleźć żadnej prostej, prostej odpowiedzi na to pytanie. Jak sprawdzić bieżące cele statystyczne używane przez ANALYZE?Sprawdź cele statystyczne w PostgreSQL

+0

Nie wiem, dlaczego tag postgresql dodano ... Myślałem, że to wywnioskować z tagiem postgresql-9.2. – jpmc26

+1

Powszechną praktyką jest robienie tego, więc wszystko, co PostgreSQL znajduje się pod znacznikiem [PostgreSQL]. –

+1

Dla celów wyszukiwania, innymi słowy: jak uzyskać statystyki lub pokazać cele statystyczne. –

Odpowiedz

17

Ustawienie celu statystycznego jest przechowywane w kolumnie w tabeli katalogu pg_attribute. Można ustawić go tak:

ALTER TABLE myschama.mytable ALTER mycolumn SET STATISTICS 127; 

i sprawdź to tak:

SELECT attstattarget 
FROM pg_attribute 
WHERE attrelid = 'myschama.mytable'::regclass 
AND attname = 'mycolumn'; 

Albo po prostu spojrzeć na skrypt do tworzenia w przeglądarce obiektowego pgAdmin, gdzie jest załączony jeśli wartość jest różni się od domyślnego w default_statistics_target.

cytuję instrukcję na attstattarget:

attstattarget kontroluje poziom szczegółowości statystyk zgromadzonych dla tej kolumny przez przeanalizować. Wartość zero wskazuje, że nie należy gromadzić statystyk . Wartość ujemna mówi, że używa domyślnego celu systemowego . Dokładne znaczenie wartości dodatnich to dane zależne od typu. W przypadku skalarnych typów danych atrybut attstattarget jest zarówno docelowym numerem "najczęstszych wartości" do pobrania oraz docelową liczbą utworzonych buforów histogramu.

Pogrubiony nacisk mój.

+0

Tak. Powinienem był zapoznać się z dokumentacją, z którą się łączyłeś. Przepraszam; Usunąłem swój komentarz, ponieważ znalazłem go prawie natychmiast po zapytaniu. Co więcej, niektóre z moich poszukiwań sugerują, że mogą istnieć różne statystyki dla indeksów. Coś, co nie jest od razu oczywiste, na co powinienem zwracać uwagę? I wielkie dzięki. – jpmc26

+0

@ jpmc26: Nigdy nie użyłem jawnego celu statystycznego dla kolumny indeksu, więc nie mam z tym żadnego doświadczenia. Do tej pory używałem go tylko do strojenia statystyk dla kolumn tabeli. –

1

ten zapewnia czystszy obraz obecnych statystyk gromadzone

SELECT attrelid::regclass, attname, attstattarget FROM pg_attribute WHERE attstattarget >= 0 order by attstattarget desc; 
Powiązane problemy