Udostępnij za pośrednictwem


Parametry serwera w usłudze Azure Cosmos DB for PostgreSQL

DOTYCZY: Usługa Azure Cosmos DB for PostgreSQL (obsługiwana przez rozszerzenie bazy danych Citus do bazy danych PostgreSQL)

Istnieją różne parametry serwera, które wpływają na zachowanie usługi Azure Cosmos DB for PostgreSQL, zarówno ze standardowego bazy danych PostgreSQL, jak i specyficznego dla usługi Azure Cosmos DB for PostgreSQL. Te parametry można ustawiać w witrynie Azure Portal dla klastra. W kategorii Ustawienia wybierz parametry Węzeł roboczy lub parametry Węzeł koordynacji. Te strony umożliwiają ustawienie parametrów dla wszystkich węzłów roboczych lub tylko dla węzła koordynacji.

Parametry usługi Azure Cosmos DB for PostgreSQL

Uwaga

Klastry z starszymi wersjami rozszerzenia Citus mogą nie oferować wszystkich parametrów wymienionych poniżej.

Konfiguracja ogólna

citus.use_secondary_nodes (wyliczenie)

Ustawia zasady do użycia podczas wybierania węzłów dla zapytań SELECT. Jeśli jest ustawiona wartość "zawsze", planista wysyła zapytania tylko do węzłów oznaczonych jako "pomocnicza" noderole w pg_dist_node.

Obsługiwane wartości dla tego wyliczenia:

  • never (nigdy): (ustawienie domyślne) Wszystkie operacje odczytu są wykonywane w węzłach podstawowych.
  • always (zawsze): Operacje odczytu są uruchamiane w węzłach pomocniczych, a instrukcje wstawiania/aktualizacji są wyłączone.

citus.cluster_name (tekst)

Informuje planistę węzła koordynatora, który klaster koordynuje. Po ustawieniu cluster_name planista wysyła zapytania do węzłów roboczych w tym klastrze.

citus.enable_version_checks (wartość logiczna)

Uaktualnienie wersji usługi Azure Cosmos DB for PostgreSQL wymaga ponownego uruchomienia serwera (w celu pobrania nowej udostępnionej biblioteki), a następnie polecenia ALTER EXTENSION UPDATE. Niepowodzenie wykonania obu kroków może potencjalnie spowodować błędy lub awarie. Usługa Azure Cosmos DB for PostgreSQL weryfikuje w ten sposób wersję kodu i dopasowanie rozszerzenia oraz błędy, jeśli nie.

Ta wartość jest domyślnie ustawiona na true i jest skuteczna dla koordynatora. W rzadkich przypadkach złożone procesy uaktualniania mogą wymagać ustawienia tego parametru na false, co spowoduje wyłączenie sprawdzania.

citus.log_distributed_deadlock_detection (wartość logiczna)

Czy rejestrować przetwarzanie związane z wykrywaniem zakleszczenia rozproszonego w dzienniku serwera. Wartość domyślna to false.

citus.distributed_deadlock_detection_factor (zmiennoprzecinkowa)

Ustawia czas oczekiwania przed sprawdzeniem rozproszonych zakleszczeń. W szczególności czas oczekiwania to ta wartość pomnożona przez ustawienie deadlock_timeout bazy danych PostgreSQL. Domyślna wartość to 2. Wartość -1 wyłącza rozproszone wykrywanie zakleszczenia.

citus.node_connection_timeout (liczba całkowita)

GuC citus.node_connection_timeout określa maksymalny czas trwania (w milisekundach) oczekiwania na ustanowienie połączenia. Usługa Azure Cosmos DB for PostgreSQL zgłasza błąd, jeśli upłynie limit czasu przed nawiązaniem co najmniej jednego połączenia z węzłem roboczym. Ten parametr GUC wpływa na połączenia z koordynatora do węzłów roboczych i na połączenia między węzłami roboczymi.

  • Wartość domyślna: pięć sekund
  • Wartość minimalna: 10 milisekund
  • Wartość maksymalna: jedna godzina
-- set to 30 seconds
ALTER DATABASE foo
SET citus.node_connection_timeout = 30000;

citus.log_remote_commands (wartość logiczna)

Zarejestruj wszystkie polecenia wysyłane przez koordynatora do węzłów roboczych. Przykład:

-- reveal the per-shard queries behind the scenes
SET citus.log_remote_commands TO on;

-- run a query on distributed table "github_users"
SELECT count(*) FROM github_users;

Dane wyjściowe ujawniają kilka zapytań uruchomionych dla procesów roboczych z powodu pojedynczego count(*) zapytania koordynatora.

NOTICE:  issuing SELECT count(*) AS count FROM public.github_events_102040 github_events WHERE true
DETAIL:  on server citus@private-c.demo.postgres.database.azure.com:5432 connectionId: 1
NOTICE:  issuing SELECT count(*) AS count FROM public.github_events_102041 github_events WHERE true
DETAIL:  on server citus@private-c.demo.postgres.database.azure.com:5432 connectionId: 1
NOTICE:  issuing SELECT count(*) AS count FROM public.github_events_102042 github_events WHERE true
DETAIL:  on server citus@private-c.demo.postgres.database.azure.com:5432 connectionId: 1
... etc, one for each of the 32 shards

citus.show_shards_for_app_name_prefixes (tekst)

Domyślnie usługa Azure Cosmos DB for PostgreSQL ukrywa fragmenty z listy tabel Bazy danych PostgreSQL dla klientów SQL. Dzieje się tak, ponieważ istnieje wiele fragmentów na tabelę rozproszoną, a fragmenty mogą rozpraszać uwagę na klienta SQL.

Funkcja citus.show_shards_for_app_name_prefixes GUC umożliwia wyświetlanie fragmentów dla wybranych klientów, którzy chcą je wyświetlić. Jego wartość domyślna to "".

-- show shards to psql only (hide in other clients, like pgAdmin)

SET citus.show_shards_for_app_name_prefixes TO 'psql';

-- also accepts a comma separated list

SET citus.show_shards_for_app_name_prefixes TO 'psql,pg_dump';

Ukrywanie fragmentów można całkowicie wyłączyć przy użyciu citus.override_table_visibility.

citus.override_table_visibility (wartość logiczna)

Określa, czy citus.show_shards_for_app_name_prefixes jest aktywny. Wartość domyślna to "true". Po ustawieniu wartości "false" fragmenty są widoczne dla wszystkich aplikacji klienckich.

citus.use_citus_managed_tables (wartość logiczna)

Zezwalaj na dostęp do nowych tabel lokalnych przez zapytania w węzłach procesu roboczego. Dodaje wszystkie nowo utworzone tabele do metadanych Citus po włączeniu. Wartość domyślna to "false".

citus.rebalancer_by_disk_size_base_cost (liczba całkowita)

Przy użyciu strategii ponownego równoważenia by_disk_size każda grupa fragmentów pobiera ten koszt w bajtach dodanych do rzeczywistego rozmiaru dysku. Ta wartość służy do unikania tworzenia złej równowagi, gdy w niektórych fragmentach brakuje danych. Założeniem jest to, że nawet puste fragmenty mają pewne koszty, ze względu na równoległość i dlatego, że puste grupy fragmentów mogą rosnąć w przyszłości.

Domyślna wartość to 100MB.

Statystyki zapytań

citus.stat_statements_purge_interval (liczba całkowita)

Ustawia częstotliwość, z jaką demon konserwacji usuwa rekordy z citus_stat_statements , które są niezgodne w programie pg_stat_statements. Ta wartość konfiguracji ustawia interwał czasu między przeczyszczaniami w sekundach z wartością domyślną 10. Wartość 0 wyłącza przeczyszczanie.

SET citus.stat_statements_purge_interval TO 5;

Ten parametr jest skuteczny w koordynacji i można go zmienić w czasie wykonywania.

citus.stat_statements_max (liczba całkowita)

Maksymalna liczba wierszy do przechowywania w widoku citus_stat_statements. Wartości domyślne to 50000 i można je zmienić na dowolną wartość z zakresu 1000–10000000. Każdy wiersz wymaga 140 bajtów magazynu, więc ustawienie stat_statements_max maksymalnej wartości 10M spowoduje użycie 1,4 GB pamięci.

Zmiana tego interfejsu GUC nie zostanie włączona do momentu ponownego uruchomienia bazy danych PostgreSQL.

citus.stat_statements_track (wyliczenie)

Rejestrowanie statystyk w przypadku citus_stat_statements dodatkowych zasobów procesora CPU. Gdy baza danych jest ładowana, administrator może wyłączyć śledzenie instrukcji, ustawiając wartość citus.stat_statements_track .none

  • wszystkie: (ustawienie domyślne) Śledź wszystkie instrukcje.
  • brak: Wyłącz śledzenie.

citus.stat_tenants_untracked_sample_rate

Częstotliwość próbkowania dla nowych dzierżaw w programie citus_stat_tenants. Szybkość może być z zakresu między 0.0 i 1.0. Wartość domyślna oznacza 1.0 , że próbkowane są 100% nieśledzonych zapytań dzierżawy. Ustawienie jej na niższą wartość oznacza, że już śledzone dzierżawy mają próbkowane 100% zapytań, ale dzierżawy, które są obecnie nieśledzone, są próbkowane tylko w podanej szybkości.

Ładowanie danych

citus.multi_shard_commit_protocol (wyliczenie)

Ustawia protokół zatwierdzania, który ma być używany podczas wykonywania kopiowania w tabeli rozproszonej skrótu. W każdym miejscu poszczególnych fragmentów kopia jest wykonywana w bloku transakcji, aby upewnić się, że żadne dane nie są pozyskiwane w przypadku wystąpienia błędu podczas kopiowania. Istnieje jednak konkretny przypadek awarii, w którym kopiowanie kończy się powodzeniem we wszystkich miejscach umieszczania, ale przed zatwierdzeniem wszystkich transakcji występuje awaria (sprzętowa). Ten parametr może służyć do zapobiegania utracie danych w tym przypadku, wybierając między następującymi protokołami zatwierdzania:

  • 2pc: (ustawienie domyślne) Transakcje, w których kopia jest wykonywana na umieszczaniu fragmentów, są najpierw przygotowane przy użyciu dwufazowego zatwierdzenia postgreSQL, a następnie zatwierdzone. Zatwierdzenia, które zakończyły się niepowodzeniem, można ręcznie odzyskać lub przerwać przy użyciu odpowiednio przygotowanego zatwierdzenia lub wycofania. W przypadku korzystania z 2pc max_prepared_transactions należy zwiększyć dla wszystkich procesów roboczych, zazwyczaj do tej samej wartości co max_connections.
  • 1pc: Transakcje, w których kopia jest wykonywana na umieszczaniu fragmentów, jest zatwierdzana w jednej rundzie. Dane mogą zostać utracone, jeśli zatwierdzenie zakończy się niepowodzeniem po pomyślnym zakończeniu kopiowania we wszystkich miejscach umieszczania (rzadko).

citus.shard_replication_factor (liczba całkowita)

Ustawia współczynnik replikacji dla fragmentów, czyli liczbę węzłów, na których umieszczono fragmenty, i wartość domyślną na 1. Ten parametr można ustawić w czasie wykonywania i jest skuteczny w koordynacji. Idealna wartość tego parametru zależy od rozmiaru klastra i szybkości awarii węzła. Można na przykład zwiększyć ten współczynnik replikacji, jeśli uruchamiasz duże klastry i obserwujesz błędy węzłów częściej.

Konfiguracja narzędzia Planner

citus.local_table_join_policy (wyliczenie)

Ten interfejs GUC określa sposób, w jaki usługa Azure Cosmos DB for PostgreSQL przenosi dane podczas łączenia między tabelami lokalnymi i rozproszonymi. Dostosowanie zasad sprzężenia może pomóc zmniejszyć ilość danych wysyłanych między węzłami procesu roboczego.

Usługa Azure Cosmos DB for PostgreSQL wysyła lokalne lub rozproszone tabele do węzłów w razie potrzeby do obsługi sprzężenia. Kopiowanie danych tabeli jest określane jako "konwersja". Jeśli tabela lokalna zostanie przekonwertowana, zostanie ona wysłana do wszystkich procesów roboczych, które potrzebują swoich danych do wykonania sprzężenia. Jeśli tabela rozproszona jest konwertowana, zostanie ona zebrana w koordynatorze w celu obsługi sprzężenia. Planista usługi Azure Cosmos DB for PostgreSQL wysyła tylko niezbędne wiersze wykonujące konwersję.

Dostępne są cztery tryby wyrażania preferencji konwersji:

  • auto: (ustawienie domyślne) Usługa Azure Cosmos DB for PostgreSQL konwertuje wszystkie tabele lokalne lub wszystkie tabele rozproszone w celu obsługi lokalnych i rozproszonych sprzężeń tabel. Usługa Azure Cosmos DB for PostgreSQL decyduje, które z nich mają być konwertowane przy użyciu metody heurystycznej. Konwertuje tabele rozproszone, jeśli są przyłączone przy użyciu stałego filtru w indeksie unikatowym (takim jak klucz podstawowy). Konwersja zapewnia mniejsze ilości danych przenoszonych między procesami roboczymi.
  • nigdy: usługa Azure Cosmos DB for PostgreSQL nie zezwala na sprzężenia między tabelami lokalnymi i rozproszonymi.
  • preferuj lokalnie: usługa Azure Cosmos DB for PostgreSQL preferuje konwertowanie tabel lokalnych na obsługę sprzężeń tabel lokalnych i rozproszonych.
  • preferowanie rozproszone: usługa Azure Cosmos DB for PostgreSQL preferuje konwertowanie tabel rozproszonych w celu obsługi lokalnych i rozproszonych sprzężeń tabel. Jeśli tabele rozproszone są ogromne, użycie tej opcji może spowodować przeniesienie dużej ilości danych między procesami roboczymi.

Załóżmy na przykład, że citus_table tabela rozproszona jest dystrybuowana przez kolumnę x, a postgres_table jest to tabela lokalna:

CREATE TABLE citus_table(x int primary key, y int);
SELECT create_distributed_table('citus_table', 'x');

CREATE TABLE postgres_table(x int, y int);

-- even though the join is on primary key, there isn't a constant filter
-- hence postgres_table will be sent to worker nodes to support the join
SELECT * FROM citus_table JOIN postgres_table USING (x);

-- there is a constant filter on a primary key, hence the filtered row
-- from the distributed table will be pulled to coordinator to support the join
SELECT * FROM citus_table JOIN postgres_table USING (x) WHERE citus_table.x = 10;

SET citus.local_table_join_policy to 'prefer-distributed';
-- since we prefer distributed tables, citus_table will be pulled to coordinator
-- to support the join. Note that citus_table can be huge.
SELECT * FROM citus_table JOIN postgres_table USING (x);

SET citus.local_table_join_policy to 'prefer-local';
-- even though there is a constant filter on primary key for citus_table
-- postgres_table will be sent to necessary workers because we are using 'prefer-local'.
SELECT * FROM citus_table JOIN postgres_table USING (x) WHERE citus_table.x = 10;

citus.limit_clause_row_fetch_count (liczba całkowita)

Ustawia liczbę wierszy do pobrania na zadanie na potrzeby optymalizacji klauzul limitu. W niektórych przypadkach wybranie zapytań z klauzulami limitu może wymagać pobrania wszystkich wierszy z każdego zadania w celu wygenerowania wyników. W takich przypadkach, a przybliżenie daje znaczące wyniki, ta wartość konfiguracji określa liczbę wierszy do pobrania z każdego fragmentu. Przybliżenia limitów są domyślnie wyłączone, a ten parametr ma wartość -1. Tę wartość można ustawić w czasie wykonywania i jest skuteczna dla koordynatora.

citus.count_distinct_error_rate (zmiennoprzecinkowa)

Usługa Azure Cosmos DB for PostgreSQL może obliczyć przybliżone wartości count(distinct) przy użyciu rozszerzenia postgresql-hll. Ten wpis konfiguracji ustawia żądaną częstotliwość błędów podczas obliczania count(distinct). 0.0, co jest wartością domyślną, wyłącza przybliżenia liczby (distinct); i 1.0 nie gwarantuje dokładności wyników. Zalecamy ustawienie tego parametru na wartość 0,005, aby uzyskać najlepsze wyniki. Tę wartość można ustawić w czasie wykonywania i jest skuteczna dla koordynatora.

citus.task_assignment_policy (wyliczenie)

Uwaga

Ten interfejs GUC ma zastosowanie tylko wtedy, gdy shard_replication_factor jest większy niż jeden lub w przypadku zapytań dotyczących reference_tables.

Ustawia zasady do użycia podczas przypisywania zadań do procesów roboczych. Koordynator przypisuje zadania pracownikom w oparciu o lokalizacje fragmentów. Ta wartość konfiguracji określa zasady do użycia podczas tworzenia tych przypisań. Obecnie istnieją trzy możliwe zasady przypisywania zadań, których można użyć.

  • chciwość: Chciwa polityka jest domyślna i ma na celu równomierne rozłożenie zadań między pracowników.
  • działanie okrężne: zasady działania okrężnego przypisuje zadania pracownikom w sposób okrężny naprzemiennie między różnymi replikami. Te zasady umożliwiają lepsze wykorzystanie klastra, gdy liczba fragmentów dla tabeli jest niska w porównaniu z liczbą procesów roboczych.
  • pierwsza replika: zasady pierwszej repliki przypisuje zadania na podstawie kolejności wstawiania umieszczania (replik) dla fragmentów. Innymi słowy, zapytanie fragmentu dla fragmentu jest przypisane do procesu roboczego, który ma pierwszą replikę tego fragmentu. Ta metoda umożliwia uzyskanie silnych gwarancji dotyczących fragmentów używanych w których węzłach (czyli silniejszych gwarancji rezydencji pamięci).

Ten parametr można ustawić w czasie wykonywania i jest skuteczny w koordynacji.

citus.enable_non_colocated_router_query_pushdown (wartość logiczna)

Włącza planistę routera dla zapytań odwołujących się do nieprzydzielonych tabel rozproszonych.

Planista routera jest włączony tylko w przypadku zapytań odwołujących się do kolokowanych tabel rozproszonych, ponieważ w przeciwnym razie fragmenty mogą nie znajdować się w tym samym węźle. Włączenie tej flagi umożliwia optymalizację zapytań odwołujących się do takich tabel, ale zapytanie może nie działać po ponownym równoważeniu fragmentów lub zmianie liczby fragmentów tych tabel.

Wartość domyślna to off.

Pośredni transfer danych

citus.max_intermediate_result_size (liczba całkowita)

Maksymalny rozmiar w KB wyników pośrednich dla ctEs, których nie można wypchnąć do węzłów roboczych w celu wykonania, oraz dla złożonych podzapytania. Wartość domyślna to 1 GB, a wartość -1 oznacza brak limitu. Zapytania przekraczające limit są anulowane i generują komunikat o błędzie.

DDL

citus.enable_schema_based_sharding

Po ustawieniu parametru na ONwartość wszystkie utworzone schematy są domyślnie dystrybuowane. Schematy rozproszone są automatycznie skojarzone z poszczególnymi grupami kolokacji, tak aby tabele utworzone w tych schematach były konwertowane na kolokowane tabele rozproszone bez klucza fragmentu. To ustawienie można zmodyfikować dla poszczególnych sesji.

Aby zapoznać się z przykładem użycia tego interfejsu GUC, zobacz , jak projektować mikrousługę.

Konfiguracja funkcji wykonawczej

Ogólne

citus.all_modifications_commutative

Usługa Azure Cosmos DB for PostgreSQL wymusza reguły commutativity i uzyskuje odpowiednie blokady dla operacji modyfikowania w celu zagwarantowania poprawności zachowania. Załóżmy na przykład, że instrukcja INSERT dojeżdża do innej instrukcji INSERT, ale nie z instrukcją UPDATE lub DELETE. Podobnie zakłada się, że instrukcja UPDATE lub DELETE nie dojeżdża do pracy z inną instrukcją UPDATE lub DELETE. Ten środek ostrożności oznacza, że rozszerzenia UPDATEs i USUWANIE wymagają, aby usługa Azure Cosmos DB for PostgreSQL uzyskała silniejsze blokady.

Jeśli masz instrukcje UPDATE, które są dojeżdżające z instrukcjami INSERTs lub innymi upDATEs, możesz złagodzić te założenia dotyczące commutativity, ustawiając ten parametr na true. Gdy ten parametr ma wartość true, wszystkie polecenia są traktowane jako commutative i oświadczenia współużytkowanej blokady, co może poprawić ogólną przepływność. Ten parametr można ustawić w czasie wykonywania i jest skuteczny w koordynacji.

citus.remote_task_check_interval (liczba całkowita)

Ustawia częstotliwość, z jaką usługa Azure Cosmos DB for PostgreSQL sprawdza stan zadań zarządzanych przez funkcję wykonawcą trackera zadań. Wartość domyślna to 10 ms. Koordynator przypisuje zadania pracownikom, a następnie regularnie sprawdza je o postępie każdego zadania. Ta wartość konfiguracji ustawia interwał czasu między dwoma kolejnymi sprawdzeniami. Ten parametr jest skuteczny w koordynacji i można go ustawić w czasie wykonywania.

citus.task_executor_type (wyliczenie)

Usługa Azure Cosmos DB for PostgreSQL ma trzy typy funkcji wykonawczej do uruchamiania rozproszonych zapytań SELECT. Żądaną funkcję wykonawcza można wybrać, ustawiając ten parametr konfiguracji. Akceptowane wartości tego parametru to:

  • adaptacyjne: wartość domyślna. Jest to optymalne dla szybkich odpowiedzi na zapytania, które obejmują agregacje i kolokowane sprzężenia obejmujące wiele fragmentów.
  • Task-tracker: Funkcja wykonawcza trackera zadań jest odpowiednia dla długotrwałych, złożonych zapytań, które wymagają mieszania danych między węzłami roboczymi i wydajnego zarządzania zasobami.
  • w czasie rzeczywistym: (przestarzałe) Służy do podobnego celu jako funkcji adaptacyjnej funkcji wykonawczej, ale jest mniej elastyczny i może powodować większe wykorzystanie połączenia w węzłach roboczych.

Ten parametr można ustawić w czasie wykonywania i jest skuteczny w koordynacji.

citus.multi_task_query_log_level (wyliczenie) {#multi_task_logging}

Ustawia poziom dziennika dla każdego zapytania, które generuje więcej niż jedno zadanie (czyli osiąga więcej niż jeden fragment). Rejestrowanie jest przydatne podczas migracji aplikacji wielodostępnej, ponieważ można zdecydować się na błąd lub ostrzec dla takich zapytań, aby je znaleźć i dodać do nich filtr tenant_id. Ten parametr można ustawić w czasie wykonywania i jest skuteczny w koordynacji. Wartość domyślna tego parametru to "off".

Obsługiwane wartości dla tego wyliczenia:

  • wyłączone: wyłącz rejestrowanie wszystkich zapytań, które generują wiele zadań (czyli obejmuje wiele fragmentów)
  • debugowanie: instrukcja Logs na poziomie ważności DEBUG.
  • log: instrukcja Logs na poziomie ważności dziennika. Wiersz dziennika zawiera uruchomione zapytanie SQL.
  • powiadomienie: instrukcja Logs na poziomie ważności NOTICE.
  • ostrzeżenie: instrukcja Logs na poziomie ważności OSTRZEŻENIE.
  • błąd: instrukcja Logs na poziomie ważności ERROR.

Przydatne może być użycie error podczas testowania programistycznego i niższego poziomu dziennika, takiego jak log podczas rzeczywistego wdrożenia produkcyjnego. Wybranie log spowoduje wyświetlenie zapytań wielodaniowych w dziennikach bazy danych z samym zapytaniem wyświetlanym po instrukcji .

LOG:  multi-task query about to be executed
HINT:  Queries are split to multiple tasks if they have to be split into several queries on the workers.
STATEMENT:  select * from foo;
citus.propagate_set_commands (wyliczenie)

Określa, które polecenia SET są propagowane z koordynatora do procesów roboczych. Wartość domyślna tego parametru to "none".

Obsługiwane wartości to:

  • brak: żadne polecenia SET nie są propagowane.
  • local: propagowane są tylko polecenia SET LOCAL.
citus.create_object_propagation (wyliczenie)

Steruje zachowaniem instrukcji CREATE w transakcjach dla obsługiwanych obiektów.

Gdy obiekty są tworzone w bloku transakcji z wieloma instrukcjami, usługa Azure Cosmos DB for PostgreSQL przełącza tryb sekwencyjny, aby upewnić się, że utworzone obiekty są widoczne dla późniejszych instrukcji na fragmentach. Jednak przełączanie do trybu sekwencyjnego nie zawsze jest pożądane. Dzięki zastąpieniu tego zachowania użytkownik może zniwelować wydajność w celu zapewnienia pełnej spójności transakcyjnej w tworzeniu nowych obiektów.

Wartość domyślna tego parametru to "natychmiastowe".

Obsługiwane wartości to:

  • natychmiastowe: zgłasza błąd w transakcjach, w których wykonywane są operacje równoległe, takie jak create_distributed_table przed podjęciem próby utworzenia typu.
  • automatyczne: odroczenie tworzenia typów podczas udostępniania transakcji za pomocą operacji równoległej w tabelach rozproszonych. W różnych węzłach mogą występować pewne niespójności między obiektami bazy danych.
  • odroczone: powrót do zachowania sprzed 11.0, który jest jak automatyczny, ale z innymi subtelnymi przypadkami narożnymi. Zalecamy automatyczne ustawienie odroczone, chyba że wymagasz zgodności z poprzednimi wersjami.

Aby zapoznać się z przykładem tego interfejsu GUC w działaniu, zobacz propagacja typu.

citus.enable_repartition_joins (wartość logiczna)

Zazwyczaj próba wykonania sprzężeń ponownego partycjonowania z funkcją adaptacyjnego wykonawcy kończy się niepowodzeniem z komunikatem o błędzie. Jednak ustawienie citus.enable_repartition_joins wartości true umożliwia usłudze Azure Cosmos DB for PostgreSQL tymczasowe przełączenie się do funkcji wykonawczej trackera zadań w celu wykonania sprzężenia. Wartość domyślna to false.

citus.enable_repartitioned_insert_select (wartość logiczna)

Domyślnie WSTAW DO ... Instrukcja SELECT, która nie może zostać wypchnięta w dół, próbuje ponownie rozdzielić wiersze z instrukcji SELECT i przenieść je między procesami roboczymi w celu wstawiania. Jeśli jednak tabela docelowa ma zbyt wiele fragmentów, ponowne partycjonowanie prawdopodobnie nie będzie działać dobrze. Obciążenie związane z przetwarzaniem interwałów fragmentów podczas określania sposobu partycjonowania wyników jest zbyt duże. Ponowne partycjonowanie można wyłączyć ręcznie, ustawiając wartość citus.enable_repartitioned_insert_select false.

citus.enable_binary_protocol (wartość logiczna)

Ustawienie tego parametru na wartość true powoduje, że węzeł koordynatora używa formatu serializacji binarnej bazy danych PostgreSQL (jeśli ma to zastosowanie) do transferu danych z procesami roboczymi. Niektóre typy kolumn nie obsługują serializacji binarnej.

Włączenie tego parametru jest w większości przydatne, gdy pracownicy muszą zwracać duże ilości danych. Przykłady to, gdy żąda się wielu wierszy, wiersze mają wiele kolumn lub używają szerokich typów, takich jak hll z rozszerzenia postgresql-hll.

Domyślna wartość to true. Po ustawieniu wartości falsena wartość wszystkie wyniki są kodowane i przesyłane w formacie tekstowym.

citus.max_adaptive_executor_pool_size (liczba całkowita)

Max_adaptive_executor_pool_size ogranicza połączenia procesów roboczych z bieżącej sesji. Ten interfejs GUC jest przydatny w następujących celach:

  • Zapobieganie pobieraniu wszystkich zasobów procesu roboczego dla pojedynczego zaplecza
  • Zapewnianie zarządzania priorytetami: wyznaczanie sesji o niskim priorytecie z niskimi max_adaptive_executor_pool_size i sesjami o wysokim priorytecie z wyższymi wartościami

Wartość domyślna to 16.

citus.executor_slow_start_interval (liczba całkowita)

Czas oczekiwania w milisekundach między otwieraniem połączeń z tym samym węzłem roboczym.

Gdy pojedyncze zadania zapytania obejmujące wiele fragmentów zajmują trochę czasu, często można je ukończyć za pośrednictwem pojedynczego (często już buforowanego) połączenia. Aby uniknąć nadmiarowego otwierania większej liczby połączeń, funkcja wykonawcza czeka między próbami połączenia dla skonfigurowanej liczby milisekund. Na końcu interwału zwiększa liczbę połączeń, które mogą być otwierane następnym razem.

W przypadku długich zapytań (tych, którzy zajmują >500 ms), powolne uruchamianie może zwiększyć opóźnienie, ale w przypadku krótkich zapytań jest szybsze. Wartość domyślna to 10 ms.

citus.max_cached_conns_per_worker (liczba całkowita)

Każde zaplecze otwiera połączenia z procesami roboczymi w celu wykonywania zapytań dotyczących fragmentów. Po zakończeniu transakcji skonfigurowana liczba połączeń jest otwarta, aby przyspieszyć kolejne polecenia. Zwiększenie tej wartości zmniejsza opóźnienie zapytań wieloczęściowych, ale także zwiększa obciążenie procesów roboczych.

Domyślna wartość wynosi 1. Większa wartość, taka jak 2, może być przydatna w przypadku klastrów korzystających z niewielkiej liczby współbieżnych sesji, ale nie jest mądry, aby przejść znacznie dalej (na przykład 16 byłoby zbyt wysokie).

citus.force_max_query_parallelization (wartość logiczna)

Symuluje przestarzałe, a teraz nieistniejącego funkcji wykonawczej w czasie rzeczywistym. Ten parametr służy do otwierania jak największej liczby połączeń w celu zmaksymalizowania równoległego wykonywania zapytań.

Po włączeniu tego interfejsu GUC usługa Azure Cosmos DB for PostgreSQL wymusza adaptacyjne wykonywanie jak największej liczby połączeń podczas wykonywania równoległego zapytania rozproszonego. Jeśli nie jest włączona, funkcja wykonawcza może użyć mniejszej liczby połączeń, aby zoptymalizować ogólną przepływność wykonywania zapytań. Wewnętrznie ustawienie tego ustawienia powoduje true użycie jednego połączenia na zadanie.

Jednym z miejsc, w których ten parametr jest przydatny, jest transakcja, której pierwsze zapytanie jest lekkie i wymaga kilku połączeń, podczas gdy kolejne zapytanie skorzystałoby z większej liczby połączeń. Usługa Azure Cosmos DB for PostgreSQL decyduje o tylu połączeniach, które mają być używane w transakcji na podstawie pierwszej instrukcji, która może ograniczać inne zapytania, chyba że użyjemy guC do podania wskazówki.

BEGIN;
-- add this hint
SET citus.force_max_query_parallelization TO ON;

-- a lightweight query that doesn't require many connections
SELECT count(*) FROM table WHERE filter = x;

-- a query that benefits from more connections, and can obtain
-- them since we forced max parallelization above
SELECT ... very .. complex .. SQL;
COMMIT;

Wartość domyślna to false.

Konfiguracja funkcji wykonawczej trackera zadań

citus.task_tracker_delay (liczba całkowita)

Ten parametr ustawia czas uśpienia trackera zadań między rundami zarządzania zadaniami i wartościami domyślnymi na 200 ms. Proces śledzenia zadań jest regularnie wznawiany, przechodzi przez wszystkie przydzielone do niego zadania oraz planuje i wykonuje te zadania. Następnie monitor zadań śpi przez pewien czas przed ponownym przejściem nad tymi zadaniami. Ta wartość konfiguracji określa długość tego okresu uśpienia. Ten parametr jest skuteczny dla procesów roboczych i należy go zmienić w pliku postgresql.conf. Po edycji pliku konfiguracji użytkownicy mogą wysłać sygnał SIGHUP lub ponownie uruchomić serwer, aby zmiany zaczęły obowiązywać.

Ten parametr można zmniejszyć, aby zmniejszyć opóźnienie spowodowane przez funkcję wykonawcy modułu śledzącego zadania, zmniejszając przerwę czasową między rundami zarządzania. Zmniejszenie opóźnienia jest przydatne w przypadkach, gdy zapytania fragmentów są krótkie i dlatego regularnie aktualizują ich stan.

citus.max_assign_task_batch_size (liczba całkowita)

Funkcja wykonawcza monitora zadań na koordynatorze synchronicznie przypisuje zadania w partiach do demona w ramach procesów roboczych. Ten parametr ustawia maksymalną liczbę zadań do przypisania w jednej partii. Wybranie większego rozmiaru partii umożliwia szybsze przypisywanie zadań. Jeśli jednak liczba procesów roboczych jest duża, może to potrwać dłużej, zanim wszyscy pracownicy będą wykonywać zadania. Ten parametr można ustawić w czasie wykonywania i jest skuteczny w koordynacji.

citus.max_running_tasks_per_node (liczba całkowita)

Proces trackera zadań planuje i wykonuje przydzielone do niego zadania zgodnie z potrzebami. Ta wartość konfiguracji ustawia maksymalną liczbę zadań, które mają być wykonywane współbieżnie w jednym węźle w danym momencie, a wartość domyślna to 8.

Limit zapewnia, że nie masz jednocześnie wielu zadań, które napotykają na dysku, i pomaga uniknąć rywalizacji o we/wy dysku. Jeśli zapytania są obsługiwane z pamięci lub dysków SSD, można zwiększyć max_running_tasks_per_node bez obaw.

citus.partition_buffer_size (liczba całkowita)

Ustawia rozmiar buforu, który ma być używany na potrzeby operacji partycji, a wartości domyślne to 8 MB. Usługa Azure Cosmos DB for PostgreSQL umożliwia ponowne partycjonowanie danych tabeli w wielu plikach po sprzężeniu dwóch dużych tabel. Po wypełnieniu tego buforu partycji dane podzielone na partycje są opróżniane na pliki na dysku. Ten wpis konfiguracji można ustawić w czasie wykonywania i jest skuteczny dla procesów roboczych.

Objaśnienie danych wyjściowych

citus.explain_all_tasks (wartość logiczna)

Domyślnie usługa Azure Cosmos DB for PostgreSQL wyświetla dane wyjściowe pojedynczego, dowolnego zadania podczas uruchamiania funkcji WYJAŚNIj w zapytaniu rozproszonym. W większości przypadków dane wyjściowe wyjaśnień są podobne w przypadku zadań podrzędnych. Czasami niektóre zadania są planowane inaczej lub mają znacznie wyższe czasy wykonywania. W takich przypadkach może być przydatne włączenie tego parametru, po którym dane wyjściowe EXPLAIN zawierają wszystkie zadania. Wyjaśnienie wszystkich zadań może spowodować, że wyjaśnienie trwa dłużej.

citus.explain_analyze_sort_method (wyliczenie)

Określa metodę sortowania zadań w danych wyjściowych funkcji EXPLAIN ANALYZE. Wartość domyślna citus.explain_analyze_sort_method to execution-time.

Obsługiwane wartości to:

  • czas wykonywania: sortuj według czasu wykonywania.
  • taskId: sortuj według identyfikatora zadania.

Zarządzane parametry narzędzia PgBouncer

Następujące zarządzane parametry narzędzia PgBouncer można skonfigurować w jednym węźle lub koordynatorze.

Nazwa parametru opis Wartość domyślna
pgbouncer.default_pool_size Ustaw tę wartość parametru na liczbę połączeń na parę użytkowników/bazy danych. 295
pgbouncer.ignore_startup_parameters Rozdzielona przecinkami lista parametrów, które narzędzie PgBouncer może zignorować. Można na przykład zezwolić narzędziu PgBouncer na ignorowanie extra_float_digits parametru. Niektóre parametry są dozwolone, wszystkie inne zgłaszają błąd. Ta zdolność jest potrzebna, aby tolerować nadmiernie entuzjastyczną JDBC, chcąc bezwarunkowo ustawić "extra_float_digits=2" w pakiecie startowym. Użyj tej opcji, jeśli biblioteka używa błędów raportów, takich jak pq: unsupported startup parameter: extra_float_digits. extra_float_digits, ssl_renegotiation_limit
pgBouncer.max_client_conn Ustaw tę wartość parametru na największą liczbę połączeń klienta z narzędziem PgBouncer, które chcesz obsługiwać. 2000
pgBouncer.min_pool_size Dodaj więcej połączeń serwera do puli, jeśli poniżej tej liczby. 0 (wyłączone)
pgBouncer.pool_mode Ustaw tę wartość parametru na TRANSACTION dla buforowania transakcji (co jest zalecanym ustawieniem dla większości obciążeń). TRANSAKCJA
pgbouncer.query_wait_timeout Maksymalny czas (w sekundach) zapytań może spędzać czas oczekiwania na wykonanie. Jeśli zapytanie nie jest przypisane do serwera w tym czasie, klient zostanie odłączony. 20 s
pgbouncer.server_idle_timeout Jeśli połączenie z serwerem było bezczynne dłużej niż w tej tylu sekundach, zostanie zamknięte. Jeśli wartość 0, ten limit czasu jest wyłączony. 60 s

Parametry bazy danych PostgreSQL

  • DateStyle — ustawia format wyświetlania wartości daty i godziny
  • IntervalStyle — ustawia format wyświetlania wartości interwału
  • TimeZone — ustawia strefę czasową do wyświetlania i interpretowania sygnatur czasowych
  • application_name — ustawia nazwę aplikacji do raportowania w statystykach i dziennikach
  • array_nulls — umożliwia wprowadzanie elementów NULL w tablicach
  • autovacuum — uruchamia podproces automatycznego czyszczenia
  • autovacuum_analyze_scale_factor — liczba wstawek krotki, aktualizacji lub usuwania przed analizą jako ułamek krotki
  • autovacuum_analyze_threshold — minimalna liczba wstawiania, aktualizacji lub usuwania krotki przed analizą
  • autovacuum_naptime — czas uśpienia między przebiegami automatycznego czyszczenia
  • autovacuum_vacuum_cost_delay — opóźnienie kosztu próżni w milisekundach w przypadku automatycznego czyszczenia
  • autovacuum_vacuum_cost_limit — kwota kosztu próżni dostępnego przed drzemkaniem w przypadku automatycznego czyszczenia
  • autovacuum_vacuum_scale_factor — liczba aktualizacji lub usuwania krotki przed opróżnianiem jako ułamek ściągaczy
  • autovacuum_vacuum_threshold — minimalna liczba aktualizacji krotki lub usuwania przed opróżnieniem
  • autovacuum_work_mem — ustawia maksymalną ilość pamięci, która ma być używana przez każdy proces roboczy automatycznego czyszczenia
  • backend_flush_after — liczba stron, po których wcześniej wykonane operacje zapisu są opróżniane na dysk
  • backslash_quote — określa, czy literał """ jest dozwolony w literałach ciągu
  • bgwriter_delay — czas uśpienia składnika zapisywania tła między rundami
  • bgwriter_flush_after — liczba stron, po których wcześniej wykonane zapisy są opróżniane na dysk
  • bgwriter_lru_maxpages — maksymalna liczba stron LRU do opróżnienia na rundę
  • bgwriter_lru_multiplier — wielokrotność średniego użycia buforu do zwolnienia na rundę
  • bytea_output — ustawia format danych wyjściowych dla bajtów
  • check_function_bodies — sprawdza jednostki funkcji podczas tworzenia funkcji
  • checkpoint_completion_target — czas spędzony na opróżnianiu zanieczyszczonych podczas punktu kontrolnego jako ułamek interwału punktu kontrolnego
  • checkpoint_timeout — ustawia maksymalny czas między automatycznymi punktami kontrolnymi wal
  • checkpoint_warning — włącza ostrzeżenia, jeśli segmenty punktów kontrolnych są wypełniane częściej niż to
  • client_encoding — ustawia kodowanie zestawu znaków klienta
  • client_min_messages — ustawia poziomy komunikatów wysyłane do klienta
  • commit_delay — ustawia opóźnienie mikrosekund między zatwierdzeniem transakcji a opróżnianie pliku WAL na dysk
  • commit_siblings — ustawia minimalną liczbę współbieżnych otwartych transakcji przed wykonaniem commit_delay
  • constraint_exclusion — umożliwia planistce używanie ograniczeń do optymalizowania zapytań
  • cpu_index_tuple_cost — określa szacowanie kosztu przetwarzania każdego wpisu indeksu przez planistę podczas skanowania indeksu
  • cpu_operator_cost — określa oszacowanie planisty kosztów przetwarzania każdego operatora lub wywołania funkcji
  • cpu_tuple_cost — określa oszacowanie planisty dotyczące kosztów przetwarzania każdej krotki (wiersza)
  • cursor_tuple_fraction — określa szacowanie przez planistę części wierszy kursora, które są pobierane
  • deadlock_timeout — określa czas oczekiwania na blokadę w milisekundach przed sprawdzeniem zakleszczenia
  • debug_pretty_print — wyświetlane są wcięcia i drzewo planu
  • debug_print_parse — rejestruje drzewo analizy poszczególnych zapytań
  • debug_print_plan — rejestruje plan wykonania każdego zapytania
  • debug_print_rewritten — rejestruje drzewo ponownego analizowania poszczególnych zapytań
  • default_statistics_target — ustawia domyślny cel statystyk
  • default_tablespace — ustawia domyślną przestrzeń tabel na tworzenie tabel i indeksów w programie
  • default_text_search_config — ustawia domyślną konfigurację wyszukiwania tekstu
  • default_transaction_deferrable — ustawia domyślny stan odroczenia nowych transakcji
  • default_transaction_isolation — ustawia poziom izolacji transakcji dla każdej nowej transakcji
  • default_transaction_read_only — ustawia domyślny stan nowych transakcji tylko do odczytu
  • default_with_oids — domyślnie tworzy nowe tabele z identyfikatorami OID
  • effective_cache_size — określa założenie planisty dotyczące rozmiaru pamięci podręcznej dysku
  • enable_bitmapscan — umożliwia planisty korzystanie z planów skanowania map bitowych
  • enable_gathermerge — umożliwia użycie planisty do zbierania planów scalania
  • enable_hashagg — umożliwia planisty korzystanie z planów agregacji skrótów
  • enable_hashjoin — umożliwia planisty korzystanie z planów dołączania skrótów
  • enable_indexonlyscan — umożliwia planisty korzystanie z planów skanowania tylko do indeksowania
  • enable_indexscan — umożliwia planisty korzystanie z planów skanowania indeksów
  • enable_material — umożliwia korzystanie z materializacji planisty
  • enable_mergejoin — umożliwia planisty korzystanie z planów scalania sprzężenia
  • enable_nestloop — umożliwia planisty użycie zagnieżdżonych planów sprzężenia pętli
  • enable_seqscan — umożliwia korzystanie z planów skanowania sekwencyjnego przez planistę
  • enable_sort — umożliwia planisty użycie jawnych kroków sortowania
  • enable_tidscan — umożliwia planisty korzystanie z planów skanowania TID
  • escape_string_warning — ostrzega o ucieczkach ukośnika odwrotnego w zwykłych literałach ciągów
  • exit_on_error — kończy sesję w przypadku dowolnego błędu
  • extra_float_digits — ustawia liczbę cyfr wyświetlanych dla wartości zmiennoprzecinkowych
  • force_parallel_mode — wymusza korzystanie z równoległych obiektów zapytań
  • from_collapse_limit — ustawia rozmiar listy FROM, poza którym podzapytania nie są zwinięte
  • geqo — umożliwia optymalizację zapytań genetycznych
  • geqo_effort — GEQO: nakład pracy służy do ustawiania wartości domyślnej dla innych parametrów GEQO
  • geqo_generations — GEQO: liczba iteracji algorytmu
  • geqo_pool_size - GEQO: liczba osób w populacji
  • geqo_seed — GEQO: inicjuj dla zaznaczenia ścieżki losowej
  • geqo_selection_bias - GEQO: presja selektywna w populacji
  • geqo_threshold — określa próg elementów FROM, poza którymi jest używana funkcja GEQO
  • gin_fuzzy_search_limit — określa maksymalny dozwolony wynik dla dokładnego wyszukiwania według ginu
  • gin_pending_list_limit — określa maksymalny rozmiar listy oczekujących dla indeksu GIN
  • idle_in_transaction_session_timeout — określa maksymalny dozwolony czas trwania dowolnej transakcji bezczynności
  • join_collapse_limit — ustawia rozmiar listy FROM, poza którą konstrukcje JOIN nie są spłaszczone
  • lc_monetary — ustawia ustawienia regionalne na potrzeby formatowania kwot pieniężnych
  • lc_numeric — ustawia ustawienia regionalne na potrzeby formatowania liczb
  • lo_compat_privileges — włącza tryb zgodności z poprzednimi wersjami na potrzeby kontroli uprawnień dla dużych obiektów
  • lock_timeout — określa maksymalny dozwolony czas trwania (w milisekundach) dowolnego oczekiwania na blokadę. Wartość 0 powoduje wyłączenie
  • log_autovacuum_min_duration — określa minimalny czas wykonywania powyżej, w którym są rejestrowane akcje automatycznego czyszczenia
  • log_connections — rejestruje każde pomyślne połączenie
  • log_destination — ustawia miejsce docelowe dla danych wyjściowych dziennika serwera
  • log_disconnections — dzienniki kończą sesję, w tym czas trwania
  • log_duration — rejestruje czas trwania każdej ukończonej instrukcji SQL
  • log_error_verbosity — określa szczegółowość zarejestrowanych komunikatów
  • log_lock_waits — rejestruje długie oczekiwania na blokadę
  • log_min_duration_statement — ustawia minimalny czas wykonywania (w milisekundach) powyżej instrukcji, które są rejestrowane. -1 wyłącza czas trwania instrukcji rejestrowania
  • log_min_error_statement — powoduje, że wszystkie instrukcje generujące błąd na poziomie lub wyższym niż ten poziom mają być rejestrowane
  • log_min_messages — ustawia zarejestrowane poziomy komunikatów
  • log_replication_commands — rejestruje każde polecenie replikacji
  • log_statement — ustawia typ zarejestrowanych instrukcji
  • log_statement_stats — dla każdego zapytania zapisuje skumulowane statystyki wydajności w dzienniku serwera
  • log_temp_files — rejestruje użycie plików tymczasowych większych niż ta liczba kilobajtów
  • maintenance_work_mem — ustawia maksymalną ilość pamięci do użycia na potrzeby operacji konserwacji
  • max_parallel_workers — ustawia maksymalną liczbę równoległych procesów roboczych, które mogą być aktywne jednocześnie
  • max_parallel_workers_per_gather — ustawia maksymalną liczbę procesów równoległych na węzeł wykonawczy
  • max_pred_locks_per_page — ustawia maksymalną liczbę zablokowanych krotki predykatu na stronę
  • max_pred_locks_per_relation — ustawia maksymalną liczbę zablokowanych stron i krotki na relację
  • max_standby_archive_delay — ustawia maksymalne opóźnienie przed anulowaniem zapytań, gdy serwer rezerwowy na gorąco przetwarza zarchiwizowane dane WAL
  • max_standby_streaming_delay — ustawia maksymalne opóźnienie przed anulowaniem zapytań, gdy serwer rezerwowy na gorąco przetwarza strumieniowo dane WAL
  • max_sync_workers_per_subscription — maksymalna liczba procesów roboczych synchronizacji tabel na subskrypcję
  • max_wal_size — ustawia rozmiar pliku WAL, który wyzwala punkt kontrolny
  • min_parallel_index_scan_size — określa minimalną ilość danych indeksu na potrzeby skanowania równoległego
  • min_wal_size — ustawia minimalny rozmiar, aby zmniejszyć rozmiar wal do
  • operator_precedence_warning — emituje ostrzeżenie dla konstrukcji, które zmieniły znaczenie od wersji PostgreSQL 9.4
  • parallel_setup_cost — określa oszacowanie planisty kosztów uruchamiania procesów roboczych na potrzeby zapytań równoległych
  • parallel_tuple_cost — określa oszacowanie planisty dotyczące przekazywania każdej krotki (wiersza) z procesu roboczego do głównego zaplecza
  • pg_stat_statements.save — zapisuje statystyki pg_stat_statements na zamknięciu serwera
  • pg_stat_statements.track — wybiera instrukcje śledzone przez pg_stat_statements
  • pg_stat_statements.track_utility — określa, czy polecenia narzędzia są śledzone przez pg_stat_statements
  • quote_all_identifiers — podczas generowania fragmentów SQL cudzysłowuje wszystkie identyfikatory
  • random_page_cost — określa szacowanie kosztu niesekwencjonalnie pobranej strony dysku planisty
  • row_security — włącza zabezpieczenia wierszy
  • search_path — ustawia kolejność wyszukiwania schematu dla nazw, które nie są kwalifikowane schematem
  • seq_page_cost — określa szacowanie kosztu sekwencyjnie pobranej strony dysku planisty
  • session_replication_role — ustawia zachowanie sesji dla wyzwalaczy i reguł ponownego zapisywania
  • standard_conforming_strings — powoduje "...". ciągi do traktowania ukośników odwrotnych dosłownie
  • statement_timeout — określa maksymalny dozwolony czas trwania (w milisekundach) dowolnej instrukcji. Wartość 0 powoduje wyłączenie
  • synchronize_seqscans — włącza synchronizowane sekwencyjne skanowania
  • synchronous_commit — ustawia poziom synchronizacji bieżącej transakcji
  • tcp_keepalives_count — maksymalna liczba retransmitów na żywo protokołu TCP
  • tcp_keepalives_idle — czas między wystawianiem utrzymywania tcp
  • tcp_keepalives_interval — czas między retransmitami aktywności TCP
  • temp_buffers — ustawia maksymalną liczbę tymczasowych używanych przez każdą sesję bazy danych
  • temp_tablespaces — ustawia przestrzenie tabel do użycia na potrzeby tabel tymczasowych i sortowania plików
  • track_activities — zbiera informacje o wykonywaniu poleceń
  • track_counts — zbiera statystyki dotyczące aktywności bazy danych
  • track_functions — zbiera statystyki na poziomie funkcji dotyczące aktywności bazy danych
  • track_io_timing — zbiera statystyki chronometrażu dla aktywności we/wy bazy danych
  • transform_null_equals — traktuje wyrażenie "expr=NULL" jako wyrażenie IS NULL
  • vacuum_cost_delay — opóźnienie kosztu próżni w milisekundach
  • vacuum_cost_limit — ilość kosztów próżni dostępnych przed drzemki
  • vacuum_cost_page_dirty - Koszt próżni dla strony brudne przez próżnię
  • vacuum_cost_page_hit — koszt próżni dla strony znajdującej się w pamięci podręcznej buforu
  • vacuum_cost_page_miss — koszt próżni dla strony nie można odnaleźć w pamięci podręcznej buforu
  • vacuum_defer_cleanup_age — liczba transakcji, za pomocą których należy odroczyć czyszczenie PRÓŻNI i GORĄCE, jeśli istnieje
  • vacuum_freeze_min_age — minimalny wiek, w którym próżnia powinna blokować wiersz tabeli
  • vacuum_freeze_table_age - Wiek, w którym próżnia powinna skanować całą tabelę, aby zamrozić krotki
  • vacuum_multixact_freeze_min_age — minimalny wiek, w którym próżnia powinna zablokować identyfikator MultiXactId w wierszu tabeli
  • vacuum_multixact_freeze_table_age — wiek multixact, w którym PRÓŻNI powinna skanować całą tabelę, aby zamrozić krotki
  • wal_receiver_status_interval — ustawia maksymalny interwał między raportami stanu odbiornika WAL do podstawowego
  • wal_writer_delay — czas między opróżnieniami WAL wykonywanymi w składniku zapisywania WAL
  • wal_writer_flush_after — ilość operacji WAL zapisywanych przez moduł zapisywania WAL, który wyzwala opróżnianie
  • work_mem — określa ilość pamięci, która ma być używana przez operacje sortowania wewnętrznego i tabele skrótów przed zapisaniem w plikach dysków tymczasowych
  • xmlbinary — określa sposób kodowania wartości binarnych w formacie XML
  • xmloption — określa, czy dane XML w niejawnych operacjach analizowania i serializacji mają być traktowane jako dokumenty lub fragmenty zawartości

Następne kroki