Zmiana parametrów

Zmiana parametrów dla sesji



Aby sprawdzić aktualną wartość parametru systemowego wystarczy posłużyć się komendą SHOW:

show nazwa_parametru;




Chcąc zmienić wartość parametru dla sesji korzystamy z komendy SET. Pamiętaj jedynie że zmiana w ten sposób będzie obowiązywała tylko do momentu zakończenia połączenia!


set work_mem='16MB';




Gdybyśmy zechcieli zmienić jakiś parametr tylko dla trwającej transakcji stosujemy komendę SET

LOCAL:



SET LOCAL work_mem='64MB';



Wartość parametru i zakres jego obowiązywania można sprawdzić odwołując się  do zawartości tabeli pg_settings:



select name,setting,reset_val,source

from pg_settings where name='work_mem';




Ograniczyłem wyświetlanie wyników tylko do zmienianego parametru. W kolumnie source zobaczysz zakres obowiązywania parametru.



Wykonaj też zapytanie : select * from pg_settings; Zobaczysz wylistowane wszystkie parametry wraz z opisami czego dotyczą!


Przywracanie wartości parametrów



Przywrócić wartość parametru do pierwotnej wartości możemy z użyciem komendy:



RESET work_mem;



Albo dla wszystkich parametrów:



RESEL ALL;



Po wykonaniu tej ostatniej możesz ponownie zajrzeć do słownika pg_settings i przyjrzeć się zawartości kolumny source. Tym razem zobaczysz tam „default” co oznacza że wartość parametru została przywrócona do wartości domyślnej:



Trwała zmiana parametrów dla klastra



Gdybyś zechciał zmienić jakiś parametr w sposób trwały, zmień go w pliku parametrów postgresql.conf i przeładuj konfigurację. Gdyby się zdarzyło że przypadkowo dwukrotnie wprowadziłeś ten sam parametr do pliku, zostanie uwzględnione ostatnie w kolejności ustawienie.



Ciekawostka: w pliku parametrów postgresql.conf można stosować dyrektywę INCLUDE dzięki której możesz „wciągać” zewnętrzne pliki. Pozwala to na przykład odseparować tematycznie konfiguracje do osobnych plików.



Zmiana parametrów dla innych użytkowników, oraz wybranych baz danych



Jeśli zechcesz zmienić parametr dla wybranej bazy danych wywołaj:



alter database postgres set work_mem='32MB';



Dla wybranego użytkownika który jest podłączony:



alter role mapet set work_mem='32MB';



Dla wybranego użytkownika w wybranej bazie danych:



alter role mapet in database postgres set work_mem='32MB';



Ten artykuł jest elementem poniższych kursów: